paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A separation logic for heap space under garbage collection

面向垃圾回收下堆空间的分离逻辑
POPL 6(POPL)2022匹配度 2/10 · 论文属于程序验证/分离逻辑,关注堆空间与垃圾回收,与用户核心方向(LLM/Agent 与静态分析或形式化验证的交叉、浮点程序分析、贝叶斯程序分析)没有直接关联,仅同属 PL/形式化验证大领域。引用 10 inbox
Jean-Marie Madiot, François Pottier
crossref: 2026-09-10

AI 速览

一句话:提出 SL♢,用空间信用与 pointed-by 断言在含分配、GC 与并发的语言中控制堆空间消耗并证明其可靠性。

本文关注在存在动态内存分配和垃圾回收时,如何对程序的堆空间消耗进行推理与控制。作者提出分离逻辑 SL♢,其核心机制是空间信用:对象分配时消耗信用,仅当用户能证明一组对象已不可达、因而可被回收时,逻辑释放才产生信用。为证明不可达性,用户维护 pointed-by 断言,记录每个对象的直接前驱。验证语言 SpaceLang 具有可变状态、共享内存并发和代码指针。论文证明了 SL♢ 的可靠性,并给出若干简单示例说明其用法。

问题
如何在存在动态内存分配和垃圾回收的语言中,对程序堆空间消耗进行静态推理与控制。
方法
提出分离逻辑 SL♢:以空间信用表示堆空间,分配时消耗、逻辑释放时产生;并用 pointed-by 断言记录对象直接前驱,以证明对象不可达且可回收。
评估
作者证明了 SL♢ 关于含可变状态、共享内存并发和代码指针的语言 SpaceLang 的可靠性,并通过若干简单例子展示该逻辑的使用。
原文摘要(Abstract)

We present SL♢, a Separation Logic that allows controlling the heap space consumption of a program in the presence of dynamic memory allocation and garbage collection. A user of the logic works with space credits, a resource that is consumed when an object is allocated and produced when a group of objects is logically deallocated, that is, when the user is able to prove that it has become unreachable and therefore can be collected. To prove such a fact, the user maintains pointed-by assertions that record the immediate predecessors of every object. Our calculus, SpaceLang, has mutable state, shared-memory concurrency, and code pointers. We prove that SL♢ is sound and present several simple examples of its use.

链接与引用

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

BibTeX
@article{paperbot1576,
  title = {A separation logic for heap space under garbage collection},
  author = {Jean-Marie Madiot and François Pottier},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {POPL},
  year = {2022},
  doi = {10.1145/3498672}
}