paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Le temps des cerises: efficient temporal stack safety on capability machines using directed capabilities

樱桃时节:在能力机器上使用定向能力实现高效的时间栈安全
OOPSLA 6(OOPSLA1)2022匹配度 1/10 · 该论文研究能力机器的调用约定、时间栈安全与编译器完全抽象,属于形式语义/安全编译器的形式化验证工作;用户画像关注的是 LLM/Agent 与静态分析、形式化验证的交叉,以及浮点程序分析和贝叶斯程序分析,本文未涉及这些方向,只有“形式化验证”这一点非常间接。引用 16 inbox
Aïna Linn Georges, Alix Trieu, Lars Birkedal
crossref: 2026-09-10

AI 速览

一句话:提出定向能力使能力机器调用约定更高效,并用一元/二元逻辑关系与编译器完全抽象证明时间栈安全性,Coq机械化。

能力机器是一种支持细粒度权限分离的CPU,其形式模型此前主要关注局部状态封装与良括号控制流两种栈安全性质。本文引入一种新型的定向能力(directed capabilities),使先前的调用约定更加高效。与以往仅关注完整性不同,本文同时考虑机密性,分别用一元逻辑关系推理完整性、二元逻辑关系推理机密性,二者均足以表达时间栈安全。为证明栈安全对一大类程序成立,作者进一步证明了一个编译器的完全抽象:从将调用约定内化为单步调用并显式跟踪调用栈与帧生命周期的overlay语义,编译到基础能力机器。所有结果均在Coq中机械化。

问题
能力机器上的调用约定需要在保证时间栈安全(局部状态封装与良括号控制流)的同时兼顾效率,且此前工作仅考虑完整性,未涉及机密性。
方法
提出定向能力以优化调用约定;使用一元逻辑关系推理完整性、二元逻辑关系推理机密性;并证明从overlay语义到基础能力机器的编译器完全抽象。
评估
所有定理与证明均在Coq中机械化;逻辑关系与完全抽象用于推理具体程序及一类程序的栈安全性。
原文摘要(Abstract)

Capability machines are a type of CPUs that support fine-grained privilege separation using capabilities , machine words that include forms of authority. Formal models of capability machines and associated calling conventions have so far focused on establishing two forms of stack safety properties, namely local state encapsulation and well-bracketed control flow. We introduce a novel kind of directed capabilities and show how to use them to make an earlier suggested calling convention more efficient. In contrast to earlier work on capability machine models we do not only consider integrity properties but also confidentiality properties; we provide a unary logical relation to reason about the former and a binary logical relation to reason about the latter, each expressive enough to reason about temporal stack safety. While the logical relations are useful for reasoning about concrete examples, they do not on their own demonstrate that stack safety holds for a large class of programs. Therefore, we also show full abstraction of a compiler from an overlay semantics that internalizes the calling convention as a single call step and explicitly keeps track of the call stack and frame lifetimes to a base capability machine. All results have been mechanized in Coq.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1511,
  title = {Le temps des cerises: efficient temporal stack safety on capability machines using directed capabilities},
  author = {Aïna Linn Georges and Alix Trieu and Lars Birkedal},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA1},
  year = {2022},
  doi = {10.1145/3527318}
}