A Verified Generational Garbage Collector for CakeML

被引:0
作者
Adam Sandberg Ericsson
Magnus O. Myreen
Johannes Åman Pohjola
机构
[1] Chalmers University of Technology,
[2] Data61/CSIRO,undefined
来源
Journal of Automated Reasoning | 2019年 / 63卷
关键词
Interactive theorem proving; Formal methods; Garbage collection; Compiler verification;
D O I
暂无
中图分类号
学科分类号
摘要
This paper presents the verification of a generational copying garbage collector for the CakeML runtime system. The proof is split into an algorithm proof and an implementation proof. The algorithm proof follows the structure of the informal intuition for the generational collector’s correctness, namely, a partial collection cycle in a generational collector is the same as running a full collection on part of the heap, if one views pointers to old data as non-pointers. We present a pragmatic way of dealing with ML-style mutable state, such as references and arrays, in the proofs. The development has been fully integrated into the in-logic bootstrapped CakeML compiler, which now includes command-line arguments that allow configuration of the generational collector. All proofs were carried out in the HOL4 theorem prover.
引用
收藏
页码:463 / 488
页数:25
相关论文
共 10 条
[1]  
Davis Jared(2015)The reflective Milawa theorem prover is sound (down to the machine code that runs it) J. Autom. Reason. 55 117-183
[2]  
Myreen Magnus O(1978)On-the-fly garbage collection: an exercise in cooperation Commun. ACM 21 966-975
[3]  
Dijkstra EW(2010)Automated verification of practical garbage collectors Log. Methods Comput. Sci. 6 441-453
[4]  
Lamport L(1994)A mechanically verified incremental garbage collector Formal Aspects Comput. 6 359-390
[5]  
Martin AJ(undefined)undefined undefined undefined undefined-undefined
[6]  
Scholten CS(undefined)undefined undefined undefined undefined-undefined
[7]  
Steffens EFM(undefined)undefined undefined undefined undefined-undefined
[8]  
Hawblitzel C(undefined)undefined undefined undefined undefined-undefined
[9]  
Petrank E(undefined)undefined undefined undefined undefined-undefined
[10]  
Russinoff David M(undefined)undefined undefined undefined undefined-undefined