- 博客(217)
- 资源 (92)
- 问答 (2)
- 收藏
- 关注
原创 SWAN(Scade One) 语言原理介绍
SCADE 团队于2024年推出了下一代 SCADE 工具 Scade One,工具的建模语言也基于Scade 6 进行了演化。在语言命名方面,并没有复用"Scade"这一标志性的名称,而是使用了新的名字:Swan。在本篇中,将叙述 Swan 语言的原理。更详细的内容,可参考 Scade One 文档中的材料《Introduction to Swan Language Principles》。
2025-06-08 18:15:23
774
原创 Scade 语言概念 - 方程(equation)
本文介绍了Scade 6语言中方程(equation)的基本概念与文法结构。方程是Scade程序中的核心语言元素,由等号左侧的标识符(lhs)和右侧表达式(expr)组成。文章特别说明equation在中文语境中译为"方程"更符合其控制工程背景。方程文法包括简单方程、断言、信号发射和控制块等多种形式,其中重点阐述了简单方程(simple_equation)的语法结构。文章还通过代码示例展示了方程的实际应用场景,包括自定义算子定义体和数据流定义中的使用方式。
2025-06-07 23:02:23
422
原创 对选择基于模型编程(MBD)的工作对职业发展影响的讨论 (2025)
基于模型编程(MBD)的职业发展探讨 从业者对Simulink等MBD工具的职业前景看法不一。支持者认为其在控制系统(如马达、传感器、航天等领域)具有显著优势,尤其是图形化开发和快速仿真验证能力。汽车、重型机械等行业仍将其作为标准方案。但反对者指出,随着软件定义汽车(SDV)兴起,Waymo等企业更倾向纯代码开发,因后者更易实现自动化测试和CI/CD。关键分歧在于:MBD适合需要领域知识的控制类工作,而纯编码更适应新兴软件密集型场景。工具价值取决于具体应用场景,需结合行业趋势与个人职业规划选择。
2025-06-01 21:37:27
327
原创 一位汽车行业从业人员对Simulink热度变化的观察与讨论 (2024)
汽车行业出现从Simulink转向C++技术栈的趋势,但业内意见不一。有从业者指出,Simulink仍在控制算法领域广泛应用,尤其适合数学密集型任务;也有观点认为航天领域将继续增长使用,仅因高昂许可费可能成为弃用原因。行业对可视化编程语言的未来存在分歧。
2025-06-01 17:06:40
321
原创 [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
731
2
原创 为 Scade 6 编译器提供形式化认证工具的考虑 (2010)
在2010年,巴黎高师的Marc Pouzet与INRIA的Nardelli提出了一个长期项目,旨在为Scade 6编译器开发形式化认证工具。这一想法源于对Scade编译器认证成本高昂的观察,尽管Scade在安全关键领域已成为标准,但其编译器的任何修改都会导致显著的认证成本。项目目标是设计一个独立工具,用于验证Scade编译器在编译过程中各中间阶段的等价性,从而降低认证成本。项目计划从简化的Lustre编译器入手,逐步扩展到Scade 6的复杂功能。
2025-05-22 20:19:31
899
原创 SCADE One(Swan) 建模语言特性需求归纳方法
Scade One 是 Scade 6 的下一代产品,其形式化建模语言命名为 Swan (S-One)。Scade 团队在 GitHub 上发布了 Swan 语言的介绍材料《The Swan Language Primer》,该材料基于 Scade One 软件需求规约 (SO-SRS-001),主要聚焦于语言语法、新增特性及对 SCADE 6 的修改。材料假设读者熟悉 SCADE 6,并面向 Swan 语言的学习者而非开发者,因此移除了面向编译器开发者的形式化描述。
2025-05-18 00:41:18
320
原创 [ERTS2012] 航天器星载软件形式化模型驱动研发 —— 对 Scade 语言本身的影响
在 ERTS 2012 会议上,Scade 团队展示了 Scade 6 在航天器星载软件开发中的应用,特别是如何通过 Scade 建模生成 SPARK 代码。这一过程促使 Scade 6 语言特性得到拓展,尤其是数值类型的层次化细分。
2025-05-11 21:42:53
316
原创 如何掌握 Lustre/Scade 同步数据流语言
从 KPN 的萌芽开始,到 Lustre/Scade 的发展,再到 Velus/Zelus/Swan 在形式化编译、连续时间建模、MBD 平权等各方面的边界拓展,同步数据流语言已经历许多。现在,我们讨论如何掌握 Lustre/Scade 这类法式技术,从语言基础,到当前发展。
2025-05-02 23:09:32
1104
1
原创 从 Eclipse Papyrus / XText 转向.NET —— SCADE MBD技术的演化
从KPN的萌芽开始,到SCADE的推出,再到`Scade 6`的技术更迭,SCADE 基于模型的开发技术已经历许多。现在,`Scade One` 已开启全新的探索 —— 从 `Eclipse Papyrus / XText` 转向`.NET 8`跨平台应用。
2025-05-02 18:19:34
517
原创 Lustre/Scade 形式化语义基础 —— KPN (1974)
Kahn进程网络(Kahn Process Network, KPN)是由Gilles Kahn于1974年提出的并行计算模型。其核心由若干确定性顺序进程构成,这些进程通过容量无限制的FIFO通道进行通信。每个进程从输入通道读取数据(Token),并向输出通道写入Token。在这之中,较为关键的规则在于1)读取阻塞。若通道为空,读取操作将被阻塞直至数据可用;2)写入无阻塞。假设通道容量没有边界,写入操作永不阻塞。
2025-05-02 10:02:08
1389
原创 从 Synchron 会议观察 Lustre/Scade 同步语言的演化 (1994 - 2024)
SYNCHRON (Seminar on Synchronous Reactive Programming) 是同步反应式编程技术为主题的年度研讨会。自1994年以来,历年研讨会的内容中,包含了丰富的 Lustre/Scade 等同步语言技术设计讨论。参与者中,除了常年出现的法国群星,也能看到中国清华L2C团队的工作。
2025-04-29 22:00:33
723
原创 Lustre/Scade 语言时序算子与形式化验证的联系
Lustre 与 Scade 语言的特点之一为用于形式化验证的时序逻辑性质,可用 Lustre / Scade 语言本身编写描述,而不用引入新的时序逻辑。
2025-04-28 20:24:23
296
原创 Lustre/Scade/Swan 语义性质中的因果性分析介绍
对同步数据流语言,如Lustre/Scade/Swan等,所编写的程序在需要满足“不包含循环”的性质。方程组无解比如方程x = x + 1无解。比如如下方程组x = y + 1y = x + 2同样无解。2)方程组有多个解比如方程x = x有多个解。而下面的方程组y = xx = y同样有多个解。有多个解的方程组,就有“非确定性”的性质。不论是对无解的方程组情况,还是有多个解的方程组的情况,在关键嵌入式系统中,只能接受方程组有唯一解的情形。
2025-04-26 20:57:38
420
原创 [Scade One] Swan 图形化建模技术的形式化文法
在 Swan 的语言定义中,在词法部分新引入了diagram关键字。diagram是新引入的描述图形化建模程序的语法符号。
2025-04-20 15:34:00
340
原创 Scade 语法介绍
Scade 6 作为一种领域特定语言(DSL),与其他同类的面向自动控制工程师建模的 DSL(如Simulink)相比,一个显著不同为Scade语言具有形式化定义。语言具有形式化定义,意味着在语法(syntax)方面具备形式化描述的明确定义,在语义(semantics)方面同样具备形式化描述的明确定义。在之前的讨论中,已经讨论了 Scade 的词法,本篇将简要讨论 Scade 的语法。
2025-04-20 11:14:19
1130
原创 [巴黎高师课程] 同步反应式系统(2024-2025) 课程参考材料
在2024-2025学期的巴黎高师MPRI硕士课程中,包含了Marc Pouzet 与 Timothy Bourke 讲授的同步反应式系统。该课程的主题覆盖了同步语言的语义与逻辑基础、同步语言的编译技术、面向同步语言的模型检测形式化验证等。课程中的各节课最后也补充了与课程主题相关的参考材料,内容分别如下。
2025-04-13 15:02:07
595
原创 [Scade One] Swan与Scade 6的区别 - signal 特性的移除
Scade 作为对离散时间模型的建模方案,在连续时间模型建模方面,早自2015年起就有Scade hybrid语言特性试验。
2025-04-09 20:44:10
262
原创 从ERTS会议学习Scade的发展
ERTS(Embedded Real Time System)会议是每双年在法国图卢兹举办的科技会议。ANSYS Scade, 及2012年被收购前的Esterel Scade,都会在该平台上发表Scade相关成果。下面列举一些Scade 在ERTS上历年的成果发表,从内容中,可学习到Scade技术的发展。
2025-04-07 22:42:35
338
原创 使用Scade实现神经网络算法
这篇论文为安全关键系统中神经网络的应用提供了一种系统化的工作流,并通过无人机避障案例展示了其可行性。该方法结合了形式化语言、强化学习和鲁棒性分析,为未来安全关键系统的开发提供了重要参考。
2025-04-07 22:30:00
428
原创 [巴黎高师课程] 同步反应式系统第二课 - 同步数据流语言 Lustre v4, Lustre v6, Scade 6, Heptagon
课程主要介绍了Lustre语言及其扩展,用于同步反应系统的设计与实现,以及其他语言如Scade 6, Heptagon等。课程中首先概述了Lustre的核心理念,即通过数学方程直接编写程序规范,并对其进行分析、转换、模拟、测试和验证,最终自动生成可执行代码。接下来详细讲解了Lustre中的数组、模块化复位(modular reset)以及状态机的实现方式。对于数组,文章对比了Lustre v4和v6的不同处理方法,强调了现代Lustre数组作为不可变数据结构的特点。
2025-04-05 19:23:21
343
原创 [巴黎高师课程] 同步反应式系统(2024-2025)第三课 - Kind 2: 基于SMT的Lustre模型检查器
本节课讨论了基于SMT(Satisfiability Modulo Theories)的转换系统模型检验技术,涵盖从基本概念到具体应用的多个方面。课程中讨论了两种性质:安全性和活性性质,并解释了它们在系统验证中的重要性。接着详细介绍了SMT求解器的基础知识,包括SAT求解器的发展历程及其与SMT求解器的关系。随后讨论了模型检验的不同方法,如显式状态枚举、基于BDD的算法、有界模型检验和k-归纳法等。特别地,文章深入探讨了k-归纳法的具体实现和优化策略,包括路径压缩和抽象化技术。
2025-04-05 18:28:22
356
翻译 [巴黎高师课程] 同步反应系统 - 第九课 - Zelus 离散时间信号与连续时间信号的混合
Zélus用于探索设计和实现混合系统建模语言及工具(类似Simulink/Stateflow和Modelica)的新方法。它继承了为同步语言开发的原理与编译技术,并将其扩展至处理离散与连续时间混合的模型。(1) 通过强制所有不连续点与过零事件或时间事件对齐,杜绝离散与连续时间系统的错误组合;(2) 静态拒绝含瞬时因果循环的定点方程;(3) 静态拦截可能依赖未初始化值的信号程序。
2025-04-05 18:06:58
35
原创 [巴黎高师课程] 同步反应式系统(2024-2025)第四课 - Velus: 经 Coq 验证的 Lustre 编译器
Vélus项目是一项持续开展的长期研究,旨在将交互式定理证明器中的形式化规范与验证技术拓展至基于模型开发(Model-Based Development)所涉及的编程语言、工具及应用领域。该项目专注于Lustre和Scade等数据流同步语言的研究工作,并以Coq为开发环境。该项目最核心的成果是经过形式化验证的Vélus Lustre编译器。该编译器可视为CompCert编译器框架在Lustre语言编译领域的延伸实现。
2025-04-05 17:47:31
257
原创 [巴黎高师课程] 同步反应式系统(2024-2025)
在2024-2025学期的巴黎高师MPRI硕士课程中,包含了Marc Pouzet 与 Timothy Bourke 讲授的同步反应式系统。该课程的主题覆盖了同步语言的语义与逻辑基础、同步语言的编译技术、面向同步语言的模型检测形式化验证等。详细内容可参考 MPRI 中该课程介绍。
2025-04-05 14:50:51
257
原创 Scade One - 将MBD技术从少数高安全领域向更广泛的安全嵌入式软件普及
Scade One是继Scade Suite version 6自2008年起发展近20年后的首次主要改进版本。在Scade One发布的同时,Scade团队发布了一系列介绍Scade One的博客。本篇是其中的一部分。在后面的内容中,将复述博客中的要点。
2025-04-05 12:37:47
584
原创 SCADE One - 弥合基于模型设计与传统编程之间的鸿沟
Scade One是继Scade Suite version 6自2008年起发展近20年后的首次主要改进版本。在Scade One首版次发布数月前,Scade团队发布了一系列介绍Scade One的博客。本篇`Scade One – Bridging the Gap between Model-Based Design and Traditional Programming`是其中的一部分。在后面的内容中,将复述博客中的要点。
2025-04-05 11:06:13
896
原创 Scade One - 可视化编程体验
Scade One是继Scade Suite version 6 自2008年起发展近20年后的首次主要改进版本。在Scade One首版次发布数月前,Scade团队发布了一系列介绍Scade One的博客。本篇`Scade One - A Visual Coding Experience`是其中的一部分。在后面的内容中,将复述博客中的要点。
2025-04-05 09:28:00
844
原创 SCADE 6: 面向高安全软件开发的基于模型的解决方案
SCADE是一种专为描述和实现高安全应用而开发的编程语言及工具套件。其理论基础源自实时应用领域的同步语言理论。SCADE填补了控制工程与软件工程之间的鸿沟,它为这两个领域提供了一种统一且严谨的图形化与文本化语言,这种语言体现了控制工程的核心理念.
2025-04-04 22:09:36
397
原创 ANSYS Scade One Swan语言与Scade 6的区别 - 状态机部分的改变
ANSYS Scade One 是 ANSYS Scade Suite 的后继产品。其语言Scade 6自2008推出近20年后,推出了演化后的语言Swan。Swan对比Scade 6在状态机方面进行了若干改变。
2025-03-30 13:31:57
357
原创 ANSYS Swan 语言 forward 迭代 (三) - resume 状态保持
本文将描述 forward 中将当前迭代结果保留,作为下一次迭代开始时输入的特性 forward resume。
2025-03-25 20:25:59
238
原创 ANSYS Swan 语言 forward 迭代(二) - 通用迭代计算
ANSYS Swan 相比前身 Scade 6,引入了新的迭代特性 forward。本文将描述 forward 作为通用迭代计算的使用方法。
2025-03-23 21:29:29
230
原创 ANSYS Swan 语言 forward 迭代(一) - 数组与矩阵遍历
ANSYS Swan 语言引入的 forward 迭代特性为数组和矩阵遍历提供了强大的工具。本文详细解析了 forward 的核心机制,并通过多个实战示例展示了其在数组元素变换、累加计算、显式索引访问及多数组并行处理中的应用。同时,针对矩阵遍历,介绍了显式索引法和元素直接绑定两种方法,并对比了不同设计模式的适用场景与性能影响。最后,提供了调试技巧,帮助开发者高效使用 forward 迭代。
2025-03-23 19:54:23
407
原创 Lustre 语言的 Rust 生成相关的工作
目前 Lustre V6 编译器支持编译生成的语言为C语言。但也注意到,以 Rust 语言为生成目标语言,也存在若干相关工作。
2025-03-22 09:34:02
485
原创 ANSYS Swan 条件激活与重置操作符教程
本教程介绍了ANSYS Swan中的条件激活与状态重置高阶操作符,包括activate ... default、activate ... last和restart。activate ... default允许在条件不满足时返回固定默认值,适用于条件分支数据替换;activate ... last则在条件不满足时保留历史值,适合状态保持场景。restart操作符用于周期性地将操作符重置到初始状态,特别适用于需要定期清零的计数器等应用。
2025-03-15 18:57:53
331
原创 ANSYS Swan 高阶迭代器操作符教程
ANSYS Swan 的高阶迭代器操作符为数组处理提供了高效、灵活的编程范式。本教程系统介绍了六种核心操作符:map(元素转换)、mapi(带索引的元素转换)、fold(数组归约)、foldi(带索引的归约)、mapfold(转换与累计结合)、mapfoldi(带索引的转换与累计)。
2025-03-15 11:48:05
409
原创 Scade 状态机 - 同步迁移
在 Scade 控制流状态机结构支持的迁移中,迁移类型除了强迁移与弱迁移外,还支持一类被称为同步(Synchro)迁移的迁移类型。
2025-03-08 19:36:02
220
[巴黎高师课程] 同步反应式系统第一课 - 使用Lustre对嵌入式系统编程
2025-04-13
[巴黎高师课程] 同步反应式系统第二课 - 同步数据流语言 Lustre v4, Lustre v6, Scade 6, Heptagon
2025-04-05
[巴黎高师课程] 同步反应式系统第三课 - Kind 2: 基于SMT的Lustre模型检查器
2025-04-05
[巴黎高师课程] 同步反应系统 - 第九课 - Zelus 离散时间信号与连续时间信号的混合
2025-04-05
[巴黎高师课程] 同步反应系统 - 第四课 - Velus - 形式化验证的Lustre编译器
2025-04-05
【嵌入式系统】SCADE 6:面向高安全软件开发的基于模型的解决方案 - 作者为 Esterel 职工 Francois Xavier Dormy - 2008.1 月发表
2025-04-04
机器学习 -- 调参经验之谈
2019-01-30
机器学习 -- Tips for Deep Learning
2019-01-30
机器学习 -- Deep Learning
2019-01-30
机器学习 -- 分类
2019-01-30
机器学习 - Bias and Variance
2019-01-30
贝叶斯网络简史
2019-01-30
python numpy 教程
2019-01-30
迁移学习Python实战 Hands on transfer learning with Python
2019-01-30
ARINC 653 标准 Par1 Required Services
2019-12-22
gcc-linaro-4.9-2016.02-i686-mingw32_arm-linux-gnueabihf.tar.xz
2019-03-24
十分钟上手sklearn 特征提取 常用模型 交叉验证
2019-01-30
机器学习 -- Backpropagation
2019-01-30
形式化方法概貌_2018
2019-02-13
机器学习 -- CNN
2019-01-30
[ENSTA Paris] ROB301 模型驱动设计与代码生成(2024) 第六课 Matlab - Simulink/Stateflow 建模
2025-06-11
[ENSTA Paris] ROB301 模型驱动设计与代码生成(2024) 第五课 软件测试与面向模型的测试SOMCA
2025-06-10
[Iowa大学 CS4980] 嵌入式系统基础 第一课
2025-06-08
【编译器实现】基于同步数据流语言的状态机验证编译:扩展Vélus以支持复杂控制结构和状态机的编译与语义保持 (Pesin 2023)
2025-05-23
【编译原理与验证】数据流同步语言带复位机制的机械化语义及验证编译:Vélus编译器在Coq中的实现与应用(Brun 2020)
2025-05-23
[巴黎理工学院] ROB301 模型驱动设计与代码生成(2024) 第四课 从Scade模型生成代码(Scade编译器实现)
2025-05-23
[巴黎理工学院] ROB301 模型驱动设计与代码生成(2024) 第三课 Scade Suite 状态机部分建模
2025-05-23
[巴黎理工学院] ROB301 模型驱动设计与代码生成(2024) 第二课 Scade Suite 数据流部分
2025-05-23
【Scade编译器实现】基于时钟导向的模块化代码生成技术在同步数据流语言中的应用:面向实时系统的高效代码编译方法研究 (Biernacki 2008)
2025-05-23
【编译器技术】Lustre编译器同步数据流方程的翻译验证:SCADE编译器的形式化认证工具设计与实现 - 项目愿景描述(2010)
2025-05-18
【ERTS2012 - 航天器星载软件】基于形式化模型驱动工程的航天器星载软件开发流程设计与验证:从系统建模到SPARK代码生成
2025-05-10
形式化模型检查工具 lesar (ubuntu 22.04)
2025-04-24
SCADE 6:面向嵌入式关键软件开发的形式化语言
2025-04-20
[Scade One] Swan语言基础语法与扩展特性解析:面向嵌入式系统的同步编程语言设计
2025-04-20
[巴黎高师课程] 同步反应式系统第8课(下)- 基于类型的时钟演算
2025-04-13
[巴黎高师课程] 同步反应式系统第8课(上)- 因果分析
2025-04-13
[巴黎高师课程] 同步反应式系统第7课(下)- 同步数据流语言核心拓展(控制结构)语义
2025-04-13
[巴黎高师课程] 同步反应式系统第7课(上)- 同步数据流语言语义
2025-04-13
[巴黎高师课程] 同步反应式系统第6课 - Kahn进程网络理论及应用
2025-04-13
[巴黎高师课程] 同步反应式系统第5课 - 同步数据流网络模块化静态调度及代码生成方法
2025-04-13
英飞凌inifneon C166指令集的C编译器,哪种普及最广?
2020-05-12
VSCODE打开大文件后,搜索symbol无反馈
2017-12-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人