Affiliation:
1. Northeastern University, Boston, MA
Abstract
Security folklore holds that a security mechanism based on stack inspection is incompatible with a global tail call optimization policy; that an implementation of such a language must allocate memory for a source-code tail call, and a program that uses only tail calls (and no other memory-allocating construct) may nevertheless exhaust the available memory. In this article, we prove this widely held belief wrong. We exhibit an abstract machine for a language with security stack inspection whose space consumption function is equivalent to that of the canonical tail call optimizing abstract machine. Our machine is surprisingly simple and suggests that tail calls are as easy to implement in a security setting as they are in a conventional one.
Publisher
Association for Computing Machinery (ACM)
Cited by
22 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Effectful Software Contracts;Proceedings of the ACM on Programming Languages;2024-01-05
2. Compiler and runtime support for continuation marks;Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation;2020-06-06
3. Rebuilding racket on chez scheme (experience report);Proceedings of the ACM on Programming Languages;2019-07-26
4. Abstracting algebraic effects;Proceedings of the ACM on Programming Languages;2019-01-02
5. Size-change termination as a contract: dynamically and statically enforcing termination for higher-order programs;Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI 2019;2019