
Scade 语言教程
文章平均质量分 59
Scade 6 同步数据流语言为 ANSYS SCADE Suite 产品为用户提供的编程语言。Scade 6 自2008年发布以来,常被简称为 Scade。本专栏将以笔者对 Scade 语言的经验为依据,总结 Scade 语言的各类语言特性。
fdtsaid
fdtsaid(AT)foxmail.com
展开
-
[ENSTA Paris - ROB301] Scade/Simulink 模型驱动设计与代码生成(2024)
Alexandre Chapoutot在ENSTA Paris开设的《模型驱动设计与代码生成》课程(ROB301)系统介绍了高安全嵌入式软件开发方法。课程内容分为六部分:1)高安全嵌入式软件概述与标准;2)ANSYS Scade Suite数据流建模技术;3)Scade状态机建模方法;4)Scade模型编译流程与中间表示;5)软件架构复杂度分析与测试方法;6)Simulink/Stateflow混合系统建模。原创 2025-05-25 10:35:09 · 718 阅读 · 1 评论 -
Scade 6 - 面向高安全嵌入式软件研发的形式化语言
SCADE 提供了面向高安全嵌入式控制软件的高级语言和开发环境。在过去逾20年里,被应用于航空、核能、铁路、汽车等行业。SCADE 技术最初基于 Capsi 与 Halbwachs 所设计的同步数据流语言 Lustre。在 SCADE 发展初期,其主要被当作是 Lustre 的图形化标记法,并搭配了能应用于安全关键应用研发的代码生成器。在2008年,基于新语言Scade 6的 SCADE 主要改版发布。原创 2024-05-11 12:21:13 · 686 阅读 · 0 评论 -
SCADE 6: 面向高安全软件开发的基于模型的解决方案
SCADE是一种专为描述和实现高安全应用而开发的编程语言及工具套件。其理论基础源自实时应用领域的同步语言理论。SCADE填补了控制工程与软件工程之间的鸿沟,它为这两个领域提供了一种统一且严谨的图形化与文本化语言,这种语言体现了控制工程的核心理念.原创 2025-04-04 22:09:36 · 392 阅读 · 0 评论 -
Scade 语法介绍
Scade 6 作为一种领域特定语言(DSL),与其他同类的面向自动控制工程师建模的 DSL(如Simulink)相比,一个显著不同为Scade语言具有形式化定义。语言具有形式化定义,意味着在语法(syntax)方面具备形式化描述的明确定义,在语义(semantics)方面同样具备形式化描述的明确定义。在之前的讨论中,已经讨论了 Scade 的词法,本篇将简要讨论 Scade 的语法。原创 2025-04-20 11:14:19 · 1108 阅读 · 0 评论 -
为 Scade 6 编译器提供形式化认证工具的考虑 (2010)
在2010年,巴黎高师的Marc Pouzet与INRIA的Nardelli提出了一个长期项目,旨在为Scade 6编译器开发形式化认证工具。这一想法源于对Scade编译器认证成本高昂的观察,尽管Scade在安全关键领域已成为标准,但其编译器的任何修改都会导致显著的认证成本。项目目标是设计一个独立工具,用于验证Scade编译器在编译过程中各中间阶段的等价性,从而降低认证成本。项目计划从简化的Lustre编译器入手,逐步扩展到Scade 6的复杂功能。原创 2025-05-22 20:19:31 · 893 阅读 · 0 评论 -
[ERTS2012] 航天器星载软件形式化模型驱动研发 —— 对 Scade 语言本身的影响
在 ERTS 2012 会议上,Scade 团队展示了 Scade 6 在航天器星载软件开发中的应用,特别是如何通过 Scade 建模生成 SPARK 代码。这一过程促使 Scade 6 语言特性得到拓展,尤其是数值类型的层次化细分。原创 2025-05-11 21:42:53 · 310 阅读 · 0 评论 -
Scade 语言词法介绍
Scade 6 是一种具备形式化语法与形式化语义的领域特定语言。原创 2025-04-19 21:43:01 · 623 阅读 · 0 评论 -
同步假设 - 同步方法对实时控制系统的抽象
信号 (Signal)- 用于通信完美采样 (Perfect sampling) - 信号元组逻辑时间 (Logical time) - 瞬时性零延迟 (Zero-delay) - 内部操作瞬时完成信息广播瞬时性 (Instantaneous broadcasting)在不同的同步假设叙述中,可能会使用不同的术语,但传达的概念是一致的。更多内容,可参考。关键字:同步假设,同步语言,Lustre,Scade,高安全嵌入式软件。原创 2024-05-11 12:29:29 · 400 阅读 · 0 评论 -
支撑 SCADE 同步方法论的四项核心技术
接下来将描述专用于航空电子、铁路、汽车、和工业应用的基于模型的嵌入式软件设计、验证和实现的 SCADE 同步方法和工具集。由于规约是可执行的,因此可以在将规约对应的实现嵌入具体实现之前,对规约进行透彻的模拟和验证。其中会进一步讨论同步方法对嵌入式控制系统中并发与确定性的计算模型抽象、Scade 图形化形式、形式化的同步语义(SCADE 5)、使用SCADE 进行软件研发过程中的设计与验证流程等讨论。功能验证只需要在块图级别进行,因为由经过认证的 KCG 编译器生成的可嵌入的 C 代码能被确保是正确的。原创 2024-05-11 12:25:15 · 531 阅读 · 0 评论 -
经验报告 - SCADE Suite 6 KCG 经历 DO-178B 认证过程中进行的活动
目前的经验显示出,OCaml可以显著缩小工程工具的规范和实现之间的距离,更好地追踪工具输入语言的形式化描述与其编译器实现之间的关系。该编译器基于当时用程序语言 Eiffel的变种(LOVE)编写的代码生成器(ECMA 2005)所开发,当时出于避免被认证机构拒绝的缘故,因此用 C 语言重新编实现了该编译器。已被纳入航空器的全周期认证流程中。目前在与关键软件有关的其他工业领域(医疗行业的 FDA Class III、铁路应用的 EN 50128、汽车行业的 IEC 61508 等)也有相应的认证程序。原创 2024-05-11 12:17:22 · 635 阅读 · 0 评论 -
从ERTS会议学习Scade的发展
ERTS(Embedded Real Time System)会议是每双年在法国图卢兹举办的科技会议。ANSYS Scade, 及2012年被收购前的Esterel Scade,都会在该平台上发表Scade相关成果。下面列举一些Scade 在ERTS上历年的成果发表,从内容中,可学习到Scade技术的发展。原创 2025-04-07 22:42:35 · 332 阅读 · 0 评论 -
Scade 状态机 - 同步迁移
在 Scade 控制流状态机结构支持的迁移中,迁移类型除了强迁移与弱迁移外,还支持一类被称为同步(Synchro)迁移的迁移类型。原创 2025-03-08 19:36:02 · 215 阅读 · 0 评论 -
Scade 状态机 - 状态与迁移
Scade 中的控制流结构中,支持的一类主要结构为状态机。在本篇材料中,将简述状态机结构中的两项主要概念,状态State 与 状态迁移 transition。原创 2025-03-08 16:52:17 · 370 阅读 · 0 评论 -
Scade 条件块
Scade 条件块为一种控制流结构。条件支持两种风格的条件,一种为"if-then-else" 风格的布尔条件控制结构;一种为 “match pattern” 风格的匹配条件控制结构。原创 2025-03-01 11:56:13 · 722 阅读 · 0 评论 -
Ansys SCADE 学生版
在本系列专栏中讨论的Scade 语言特性内容,源自对该学生版 Ansys Scade 的使用经验。读者也可使用 Ansys Scade 学生版对Scade 语言特性进行实践验证。原创 2025-02-23 16:26:42 · 300 阅读 · 0 评论 -
Scade 表达式 - 有条件的迭代器
Scade 迭代器表达式支持一类带条件的迭代器表达式。原创 2025-01-27 17:50:40 · 1300 阅读 · 0 评论 -
Scade 表达式 - 使用索引的迭代器
Scade 表达式中的 map, fold, mapfold,会对输入数组参数中的元素逐个作处理,不需要数组元素的索引信息。若在处理数组元素时,需要数组元素相应的索引信息,则可使用迭代器算子mapifoldimapfoldi。原创 2025-01-20 20:16:55 · 375 阅读 · 0 评论 -
Scade 表达式 - 迭代器
在 Scade 表达式支持的算子中,有一类算子被称为高阶(Higher-Order)算子。原创 2025-01-19 15:09:07 · 959 阅读 · 0 评论 -
Scade pragma: separate_io
本文介绍 Scade 语言 separate_io pragma 的作用与用法。原创 2025-01-05 21:12:54 · 303 阅读 · 0 评论 -
Scade Pragma: kcg expand 内联展开
本文将描述 Scade 语言中 kcg expand pragma 的作用。原创 2025-01-05 19:49:41 · 252 阅读 · 0 评论 -
Scade package 声明
本篇 Scade 语言教程将讲述 Scade 语法中的 package 声明。原创 2024-12-10 21:00:55 · 387 阅读 · 0 评论 -
Scade sensor 声明块
本篇 Scade 语言教程将讲述 Scade 语法中的 Sensor 声明块。原创 2024-12-10 21:00:04 · 347 阅读 · 0 评论 -
Scade 类型声明块
本篇 Scade 语言教程将讲述 Scade 语法中的类型声明块。原创 2024-12-10 20:59:05 · 409 阅读 · 0 评论 -
Scade 常量声明块
本篇 Scade 语言教程将讲述 Scade 语法中的常量声明块。原创 2024-12-10 20:58:06 · 217 阅读 · 0 评论 -
Scade 类型表达式
本篇 Scade 语言教程将讲述 Scade 语法中的类型表达式。原创 2024-12-10 20:56:50 · 259 阅读 · 0 评论 -
Scade 表达式 - 数组表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的数组表达式算子。原创 2024-12-10 12:14:56 · 176 阅读 · 0 评论 -
Scade 表达式 - ID表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的ID表达式。原创 2024-12-10 12:12:51 · 197 阅读 · 0 评论 -
Scade 表达式 - 原子表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的原子表达式。原创 2024-12-10 12:11:19 · 234 阅读 · 0 评论 -
Scade 表达式 - 时序表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的时序表达式算子。原创 2024-12-10 08:41:09 · 346 阅读 · 0 评论 -
Scade 表达式 - switch 表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的 switch 表达式算子。原创 2024-12-10 08:21:48 · 172 阅读 · 0 评论 -
Scade 表达式 - 布尔表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的布尔表达式算子。原创 2024-12-10 08:10:20 · 165 阅读 · 0 评论 -
Scade 表达式 - 比较表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的比较类表达式算子。原创 2024-12-10 08:00:48 · 164 阅读 · 0 评论 -
Scade 表达式 - 算术表达式
本篇 Scade 语言教程将讲述 Scade 表达式中的算术类表达式算子。原创 2024-12-10 07:43:53 · 397 阅读 · 0 评论 -
SCADE Suite 开发环境介绍
SCADE Suite 中的"SCADE"为"安全关键应用开发环境"的缩写。需说明的是,在时效性方面,下面的描述反映的是发展至2010年左右的情况。更详细的内容,可参考《Formal Methods - Industrial Use from Model to the Code》(ISBN 978-1-84821-362-3)。SCADE 开发环境提供了基于 SCADE 建模语言的工具集,覆盖了软件应用研发活动中的设计、编码与验证阶段工作。原创 2024-05-11 12:23:52 · 687 阅读 · 0 评论 -
SCADE Suite 开发环境的起源
SCADE Suite 中的"SCADE"为"安全关键应用开发环境"的缩写。需说明的是,在时效性方面,下面的描述反映的是发展至2010年左右的情况。更详细的内容,可参考《Formal Methods - Industrial Use from Model to the Code》(ISBN 978-1-84821-362-3)。原创 2024-05-11 12:19:26 · 319 阅读 · 0 评论 -
同步语言(如SCADE)在工业界的商业化过程 (1991 - 2002)
Albert Benveniste 等人在2002年叙述了同步语言自1991年提出后,到2002年12年间的发展。这里将描述Albert对同步语言在工业界在1991 - 2002期间的商业化历程。更多内容,可参考《The Synchronous Languages 12 Years Later》。过去的12年见证了同步语言在工业上的多次成功应用。在这里,将描述其中的一些过程。原创 2024-05-11 12:27:36 · 556 阅读 · 0 评论