引用本文:尚书,甘元科,石刚,王生原,董渊.可信编译器L2C的核心翻译步骤及其设计与实现.软件学报,2017,28(5):1233-1246
【打印本页】   【下载PDF全文】   查看/发表评论  【EndNote】   【RefMan】   【BibTex】
←前一篇|后一篇→ 过刊浏览    高级检索
本文已被:浏览 5113次   下载 8460 本文二维码信息
码上扫一扫!
分享到: 微信 更多
可信编译器L2C的核心翻译步骤及其设计与实现
尚书, 甘元科, 石刚, 王生原, 董渊
清华大学 计算机科学与技术系, 北京 100084
摘要:
同步数据流语言(如Lustre)近年来在航空、高铁、核电等安全攸关领域得到广泛应用.这些领域对相关开发工具本身的安全性有着相当高的要求.为尽力解决好“误编译”问题,近期人们借助reliable-by-construction辅助定理证明器实现常规命令式语言编译器的构造和验证,取得了很大的成功,如CompCert C编译器.L2C是基于这种方法开发的可信编译器.它以扩展的Lustre语言为源语言,以Clight(CompCert中的C语言子集)为目标语言.L2C是面向实际工业应用的同步数据流语言编译器.重点介绍L2C编译器的核心翻译步骤及其设计与实现过程中考虑的主要问题和相关经验.
关键词:  经过验证的编译器  同步数据流语言  L2C  Coq证明辅助器  核心翻译步骤
DOI:10.13328/j.cnki.jos.005213
分类号:
基金项目:国家自然科学基金(90818019,61462086);国家科技重大专项(MJ-2015-D-066);Sino-European Laboratory of Informatics,Automation and Applied Mathematics资助项目
Key Translations of the Trustworthy Compiler L2C and Its Design and Implementation
SHANG Shu, GAN Yuan-Ke, SHI Gang, WANG Sheng-Yuan, DONG Yuan
Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China
Abstract:
Synchronous data-flow languages, such as Lustre, have been widely used in safety-critical industrial areas, such as airplanes, high-speed railways, and nuclear power plants. The safety of development tools themselves for these types of applications is highly required. In better solving the "miscompilation" problem, very successful progress has been made recently to implement the construction and verification of a conventional imperative language compiler, such as the CompCert C compiler, by using reliable-by-construction proof assistants. L2C is a trustworthy compiler developed based on such an approach, with an extended Lustre language as its source, and Clight, a C subset used in ComperCert, as its target. L2C is an industry-level synchronous data-flow language compiler developed by using the same technique. The paper focuses on the key translations of L2C and the main issues and experience in its design and implementation.
Key words:  certified compiler  synchronous data-flow language  L2C  Coq proof assistant  key translation