“SCADE"为"高安全应用开发环境”(Safety Critical Application Development Environment)的缩写。本文的详细内容,可参考 TASE 17 《Scade 6: A Formal Language for Embedded Critical Software Development》。
摘要
SCADE 提供了面向高安全嵌入式控制软件的高级语言和开发环境。在过去逾20年里,被应用于航空、核能、铁路、汽车等行业。SCADE 技术最初基于 Capsi 与 Halbwachs 所设计的同步数据流语言 Lustre 。在 SCADE 发展初期,其主要被当作是 Lustre 的图形化标记法,并搭配了能应用于安全关键应用研发的代码生成器。
在2008年,基于新语言Scade 6
的 SCADE 主要改版发布。新的语言组合了来自 Lustre 的数据流风格的部分、来自 Esterel 与 SyncCharts 的控制结构、来自 Lucid Synchrone 的编译及静态分析技术。在语言表达能力方面的拓展,及配套 KCG 代码生成器,使得该技术能被应用的领域范围得到了显著地拓展。
在过去的发表物中,部分讨论了语言的语言结构和编译器算法,但没有参考材料直接针对Scade 6
语言进行讨论。在本文中,将回顾在 Scade 6 语言设计中所作的选择、阐述主要语言特性、静态分析方法、编译器架构等。
概述
同步语言提出可追溯到30年前同期发展的3种语言:Signal、Esterel、Lustre。这些语言的共同点,都是作为领域特定语言面向实时控制软件。通过这类语言,可以模块、数学级精确地描述系统规约,对所描述应用进行仿真、测试、验证,并自动化地