A certified framework for compiling and executing garbage-collected languages

Author:

McCreight Andrew1,Chevalier Tim1,Tolmach Andrew1

Affiliation:

1. Portland State University, Portland, OR, USA

Abstract

We describe the design, implementation, and use of a machine-certified framework for correct compilation and execution of programs in garbage-collected languages. Our framework extends Leroy's Coq-certified Compcert compiler and Cminor intermediate language. We add: (i) a new intermediate language, GCminor, that includes primitives for allocating memory in a garbage-collected heap and for specifying GC roots; (ii) a precise, low-level specification for a Cminor library for garbage collection; and (iii) a proven semantics-preserving translation from GCminor to Cminor plus the GC library. GCminor neatly encapsulates the interface between mutator and collector code, while remaining simple and flexible enough to be used with a wide variety of source languages and collector styles. Front ends targeting GCminor can be implemented using any compiler technology and any desired degree of verification, including full semantics preservation, type preservation, or informal trust. As an example application of our framework, we describe a compiler for Haskell that translates the Glasgow Haskell Compiler's Core intermediate language to GCminor. To support a simple but useful memory safety argument for this compiler, the front end uses a novel combination of type preservation and runtime checks, which is of independent interest.

Publisher

Association for Computing Machinery (ACM)

Subject

Computer Graphics and Computer-Aided Design,Software

Reference37 articles.

1. }}H. Abelson and G. J. Sussman. Structure and Interpretation of Computer Programs. The MIT Press FIrst edition 1985. }}H. Abelson and G. J. Sussman. Structure and Interpretation of Computer Programs. The MIT Press FIrst edition 1985.

2. }}ADT Coq. The Coq proof assistant. http://coq.inria.fr. }}ADT Coq. The Coq proof assistant. http://coq.inria.fr.

3. LNCS;Appel A. W.,2007

4. Continuation-passing, closure-passing style

5. Code optimizations for lazy evaluation

Cited by 6 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. A separation logic for heap space under garbage collection;Proceedings of the ACM on Programming Languages;2022-01-12

2. Cogent: uniqueness types and certifying compilation;Journal of Functional Programming;2021

3. Certifying graph-manipulating C programs via localizations within data structures;Proceedings of the ACM on Programming Languages;2019-10-10

4. Atomicity Refinement for Verified Compilation;ACM Transactions on Programming Languages and Systems;2014-07

5. Proof-producing translation of higher-order logic into pure and stateful ML;Journal of Functional Programming;2014-01-20

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3