We propose and study StkTokens: a new calling convention that provably enforces well-bracketed control flow and local state encapsulation on a capability machine. The calling convention is based on linear capabilities: a type of capabilities that are prevented from being duplicated by the hardware. In addition to designing and formalizing this new calling convention, we also contribute a new way to formalize and prove that it effectively enforces well-bracketed control flow and local state encapsulation using what we call a fully abstract overlay semantics. This document is a technical report accompanying a paper by the same title and authors, published at POPL 2019. It contains proofs and details that were omitted from the paper for space and presentation reasons.
翻译:我们提议并研究StkTokens:一个新的传呼公约,它可以对能力机器实施良好的括号控制流程和局部状态封装。传呼公约以线性能力为基础:一种硬件无法复制的能力。除了设计并正式化这一新传呼公约外,我们还贡献了一种新的方式,用我们所称的完全抽象的叠加语义来正式和证明它有效地实施精心括号的控制流程和本地状态封装。这份文件是一份技术报告,随附在2019年POPL出版的由同一标题和作者撰写的论文上,其中载有文件因空间和演示原因遗漏的证据和细节。