为了满足国内某安全攸关领域的需求, L2C编译器的开发始于2010年9月, 其目标是设计实现一个经过形式化验证的可信编译器, 其源语言是面向领域的同步数据流语言Lustre*(Lustre语言的一个变种, 参考下一节), 目标语言是C, 最终可用作相关领域数字化仪控系统的安全级代码生成器.国产主可控的嵌入式仿真测试软件SkyEye与可信编译器L2C的核心翻译步骤及其设计与实现。国产主可控的嵌入式仿真测试软件SkyEye与可信编译器L2C的核心翻译介绍
1、L2C编译器简介
L2C编译器的发展进程可归为3个里程碑.一个是面向Lustre的一个核心子集, 设计实现了L2C编译器的一个原型系统, 于2013年6月完成验收.另一个里程碑是已实现除嵌套时钟外Lustre全部特性的一个单时钟L2C编译器版本, 完全能够满足国内该安全攸关领域目前的实际应用需求, 并于2015年4月完成严格的企业级验收, 这些工作的相关技术和代码已在实际应用中发挥作用.
在上述第2个里程碑之后, 项目组对L2C编译器的设计框架进行了较大程度的优化调整, 目标是拓展应用领域以及开源系统的建设.目前, L2C编译器进入了第3个里程碑的发展阶段, 其目标是在目前面向企业的版本 (不开源) 基础上裁减并适当改造, 形成了覆盖Lustre V6[19]全部特性的可开源版本.目前, 这一L2C编译器的单时钟版本 (L2C-MC) 已经开放源码 (https://github.com/l2ctsinghua/l2c/releases/tag/version-0.8), 支持嵌套时钟的版本处于测试与完善的周期, 其源码不久也将开放.
2、源语言的特性
L2C编译器的不同版本, 其源语言 (Lustre*) 可能有所不同