当前位置: 首页 > news >正文

为 Scade 6 编译器提供形式化认证工具的考虑 (2010)

在2010年左右(注1),巴黎高师 Marc Pouzet 与 INRIA Nardelli 提出了一项长期项目的想法:为 Scade 6 编译器提供形式化认证工具(注3)。并欢迎对编程语言的设计与实现感兴趣、最好有函数式编程经验、Coq(注2)或Isabelle经验的学生参与进来。

注1: 2010年是一个估计的时间。在原始材料中列出的参考资料,最晚的一篇为2010发表,因此想法不早于2010年。另一方面,材料描述中提到 Scade 编译器是 Esterel Tech 的产品,而 Esterel Tech 于2012年被ANSYS收购,因此想法应早于2012年。综合前面描述的情况,该想法发生在2010-2012之间。巧合的是,清华L2C项目也是从2010年起启动。

注2:Coq 已改名为 Rocq. Rocq

注3:原材料可参考: Translation validation for synchronous data-flow equations in a Lustre compiler

这项想法源自于提出者对 Scade 编译器认证成本的观察。Marc 注意到,同步数据流语言 Scade 已经是安全关键领域软件的事实标准。Scade 编译器也遵循了如 DO-178C范式 Level A 标准的最高安全(safety)要求。这项认证过程对 Scade 取得商业成功有帮助,但也注意到,即使对 Scade 编译器进行少量修改,认证成本是主要成本。出于以上观察,想要探索一些方向对 Scade 编译器的形式化认证提供工具支持。更具体地,是要对 Scade 编译器内一些中间阶段设计翻译验证机制,即在编译期检查某个编译阶段的输入,与编译阶段后的输出的等价性。

作为入手的起点,目标是实现一个用于检查 Scade 编译器所执行的一些中间步骤之间的等价性的独立工具。Scade 编译器可以被视为对"时钟化的数据流方程(clocked data-flow equations)"(注4)的内部表示进行一系列源到源的转换,最终再转换为较为顺序命令式代码。设计的工具将直接作用于时钟化数据流的中间表示(IR):

  • 第一步将为时钟化方程定义一种范式、相关的变换函数。
  • 接下来,将确定编译器需要提供哪些信息,才能使语义检查既易于实现和形式化。
  • 可能需要依赖外部的 SMT 求解器,或在定理证明器中实现检查函数。

为了使项目更具可行性,将从一个简化的 Lustre 编译器入手,在初期仅考虑 Scade 6 的基本功能,而将更复杂的功能(如时钟演算、初始化分析、分层状态机等)留作后续扩展。

注4: 在一些翻译中,比如 L2C,对"equation"术语翻译为“等式”。但考虑到Scade面向的自动化控制算法建模中,术语"equation"在该领域指代“方程”;并且在ENS《同步反应式系统》(2024-2025)中,在介绍Lustre语言时,也提到其建立的方程组(equation set)不会无解,或有多个解,只有唯一解。因此,这里倾向于将“equation”以自动控制算法中的术语概念去理解,以"方程"描述。

在原材料中,也提到若干其他参考,比如LCTES 08[1]综述了 Scade 6 编译器的架构组成、各阶段机制、mergereset 的关键作用、形式化描述的语义及形式化描述的转换函数等。也提到了语义分析中时钟演算机制[2]、初始化分析机制[3]等。以及层次化状态机的实现[4]。这些内容在ENS《同步反应式系统》(2024-2025)中也都有详细叙述。不过也需要注意到,前面的工作都是2010年前的状态,经过十多年的演化,Scade 6 编译器也有新变化[5]。由于不是本主题的相关内容,在这里不作展开。

[1]: Darek Biernacki, Jean-Louis Colaco, Gr´egoire Hamon, and Marc Pouzet. Clock-directed Modular Code Generation of Synchronous Data-flow Languages. In ACM International Conference
on Languages, Compilers, and Tools for Embedded Systems (LCTES), Tucson, Arizona, June 2008
[2]: Jean-Louis Cola¸co and Marc Pouzet. Clocks as First Class Abstract Types. In Third International Conference on Embedded Software (EMSOFT’03), Philadelphia, Pennsylvania, USA,
october 2003.
[3]: Jean-Louis Cola¸co and Marc Pouzet. Type-based Initialization Analysis of a Synchronous Data-flow Language. International Journal on Software Tools for Technology Transfer (STTT), 6(3):245–255, August 2004
[4]: Jean-Louis Cola¸co, Bruno Pagano, and Marc Pouzet. A Conservative Extension of Synchronous Data-flow with State Machines. In ACM International Conference on Embedded Software (EMSOFT’05), Jersey city, New Jersey, USA, September 2005.
[5]: Jean-Louis Colaco, Michael Mendler, Baptiste Pauget, and Marc Pouzet. A Constructive State-based Semantics and Interpreter for a Synchronous Data-flow Language with State machines. In International Conference on Embedded Software (EMSOFT), Hamburg, Germany, September 17-22 2023. ACM.

相关文章:

  • LCI输出频率配置方法
  • Vue.js教学第十章:自定义命令的创建使用与应用
  • Android-RecyclerView学习总结
  • 新疆工程系列建筑专业职称评审条件
  • 流程引擎选型指南
  • zabbix 常见问题
  • 繁体字与简体中文转换
  • 基于springboot+vue的人口老龄化社区服务与管理平台(源码+数据库+文档)
  • 火语言UI组件--控件事件触发
  • 测试文章1
  • Keil5 MDK LPC1768 RT-Thread KSZ8041NL uIP1.3.1实现UDP网络通讯(服务端接收并发数据)
  • Unity基础学习(六)Mono中的重要内容(2)协同程序
  • XXE(外部实体注入)
  • 我店模式系统开发打造本地生活生态商圈
  • 【深度学习-Day 15】告别“盲猜”:一文读懂深度学习损失函数
  • 2. Java 基础语法通关:变量、数据类型与运算符详解​
  • CST求解器
  • HarmonyOS 鸿蒙应用开发基础:父组件调用子组件方法的几种实现方案对比
  • Linux Docker下安装tomcat
  • 首次使用倍福工控机修改IP
  • 东莞市建网站/精准营销系统
  • wordpress in排序/西安seo报价
  • 聊城高新区建设局网站/湖南关键词优化快速
  • 小企业网站免费建设/山东关键词优化联系电话
  • 建设网站需求文档/上海搜索优化推广
  • 政府网站建设服务商/海外免费网站推广有哪些