如何掌握 Lustre/Scade 同步数据流语言

从 KPN 的萌芽开始,到 Lustre/Scade 的发展,再到 Velus/Zelus/Swan 在形式化编译、连续时间建模、MBD 平权等各方面的边界拓展,同步数据流语言已经历许多。现在,我们讨论如何掌握 Lustre/Scade 这类法式技术,从语言基础,到当前发展。

对掌握 Lustre/Scade 的方法讨论,将从三方面展开:

  • Lustre/Scade 语言基础和相关技术。
  • Lustre/Scade 技术的发展演变过程。
  • Lustre/Scade 当前的拓展方向。

从以上三方面将分别掌握 Lustre/Scade 的基础、历史演变、未来发展。

Lustre/Scade 语言基础和相关技术

Lustre/Scade的语言基础和相关技术,可从巴黎高师2024Q4至2025Q1开设的《同步反应式系统》课程进行掌握。课程网站可访问wikimpri.dptinfo.ens-cachan.fr

在该课程中,将介绍Lustre/Scade等同步语言的数学原理、其语义和逻辑基础、编译成软件的相关技术、通过模型检测进行形式化验证的方法。该课程的大纲由如下部分构成:

  • 第一节至第三节中,将讨论Lustre v4/Lustre v6/Heptagon/Scade 6等语言特性中的数据流部分与控制流部分,将涉及到时序算子与形式化方法之间的关联,以及采样操作中的时钟概念对支持控制流特性的关键作用;以及相关的SMT模型检测技术及Kind 2工具。

  • 在第四节中,将讨论在 Velus 编译器中使用证明辅助工具进行语义形式化和编译算法的端到端正确性证明。

  • 在第五节至第八节中,聚焦于从 Lustre 出发的同步语言,并从类型化函数式语言的视角进行探讨:将研究高阶、控制结构(例如模块化重置、分层自动机)等特性对语义的影响,包括其静态语义和动态语义。将讨论例如某些属性(如确定性)可以通过专门的类型系统以模块化方式描述和验证。

  • 在第九节中,将讨论混合模型编写,将同步语言(离散时间)的构造与常微分方程(ODE)结合,用以描述软件与其物理环境之间的交互。将讨论这一设计在静态和动态语义、编译以及运行时系统(与 ODE 求解器对接)方面所带来的问题。

Lustre/Scade 技术的演变发展过程

Lustre/Scade 的技术演变,通过 A Brief History of Synchronous Programming (Marc Pouzet, SYNCHRON 22) csdn.net 以及 The Synchronous Languages 12 Years Later (Albert Benveniste, 2022) csdn.net 可得到了解。

对更加具体的信息,有若干途径进行了解:

  • 浏览 SYNCRHON 会议历年的主题变化。csdn.net

  • 浏览 ERTS 会议每双年的主题变化。csdn.net

  • Lustre/Scade 技术全明星的工作,比如 Albert Benveniste, Baptiste Pauget, Basile Pensin, Bruno Pagano, Cedric Pasteur, Erwan Jahier, Jean Louis Colaco, Leonard Gerard, Lelio Brun, Marc Pouzet, Nicolas Halbwachs, Pascal Raymond, Paul Jeanmaire, Paul Caspi, Timothy Bouke 等人。

Lustre/Scade 当前的拓展方向

在巴黎高师2024Q4至2025Q1开设的《同步反应式系统》课程中,提到了 Lustre/Scade 的若干发展方向。

  • 在第四节中,讨论的使用证明辅助工具进行语义形式化和编译算法的端到端正确性证明。
  • 在第九节中讨论的向连续时间建模的拓展。该方向在2015年Scade hybrid中已有试验性实践,但10年后的2025年,未出现在Scade Suite系列中。然而,值得注意的是,在下一代Scade技术(Scade One)中,已为该拓展做好了铺垫csdn.net

除语言特性的改变外,在商业策略和具体实现技术方面,Scade技术也作出了相比过去30年(95-25)显著不同的选择:

  • MBD技术平权,将MBD技术从少数高安全领域向更广泛的安全嵌入式软件普及。csdn.net
  • 可视化编程与文本编程的统一。csdn.netcsdn.net
  • 以及在建模技术和对外集成技术方面,下一时代的着力点选择为.NETPython(PyScadeOne)。csdn.net

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神州趣味地名-基于天地图和LeafLet的趣味地名探索

目录 前言 一、搜索API据介绍 1、官方API 2、Leaflet集成 二、成果介绍 1、令人忍俊不禁的地名 2、黑地名 3、数字地名 4、文艺地名 三、总结 前言 在华夏大地广袤的土地上,地名承载着深厚的历史文化底蕴,它们如同一颗颗璀璨的明珠,…

第6篇:EggJS数据库操作与ORM实践

在Web应用开发中,数据库操作是核心环节之一。EggJS通过集成Sequelize ORM框架,提供了高效、安全的数据库操作方案。本文将深入讲解如何在EggJS中配置MySQL数据库、定义数据模型、优化复杂查询,以及管理数据库迁移与种子数据。 一、MySQL基础配…

法线纹理采样+可视化Shader编辑器

法线贴图,对主纹理凹凸显示 建模原理 法线贴图:切线空间,存储xy切线,映射法线,法线信息存储在切线空间中。 模型是否凹凸,是由模型顶点决定的,现在实现的法线贴图,控制凹凸,实际上是…

OID是什么?

什么是 OID? OID 是 Object Identifier(对象标识符) 的缩写,是SNMP(Simple Network Management Protocol,简单网络管理协议)中用来唯一标识被管理对象(比如设备的某项信息)的一串数字。

STM32 ZIBEE DL-20 无线串口模块

一.配置方法 二.串口中断 u8 i; u16 buf[20],res; u8 receiving_flag 0; // 新增一个标志,用于标记是否开始接收数组 void USART1_IRQHandler(void) {if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) //接收中断{res USART_ReceiveData(USART1);if(receiv…

全感官交互革命:当 AI 大模型学会 “看、听、说、创”

引言:从 “文字对话” 到 “全感官体验”,AI 正在重塑人类认知边界 当 AI 不再局限于文本对话,而是能 “看懂” 图像、“听懂” 语音、“生成” 视频,并将这些模态无缝融合时,一场关于人机交互的革命已然开启。DeepSe…

C++模板知识

目录 引言 一、非类型模板参数 二、类模板的特化 (一)概念 (二)函数模板特化 (三)类模板特化 1. 全特化 2. 偏特化 (四)类模板特化应用示例 三、模板的分离编译 …

Pillow 移除或更改了 FreeTypeFont.getsize() 方法

w, h self.font.getsize(label) # text width, height AttributeError: FreeTypeFont object has no attribute getsize 在Pillow 项目的变更日志里可以查到哪个版本移除了 getsize() 方法,Pillow仓库: Releases python-pillow/Pillow GitHub 因为…

Matlab自学笔记

一、我下载的是Matlab R2016a软件,打开界面如下: 二、如何调整字体大小,路径为:“主页”->“预设”->“字体”。 三、命令行窗口是直接进行交互式的,如下输入“3 5”,回车,就得到结果“…

VR汽车线束:汽车制造的新变革

汽车线束,作为汽车电路网络的主体,宛如汽车的 “神经网络”,承担着连接汽车各个部件、传输电力与信号的重任,对汽车的正常运行起着关键作用。从汽车的发动机到仪表盘,从传感器到各类电子设备,无一不是通过线…

目标检测YOLO实战应用案例100讲-基于多级特征融合的小目标深度检测网络

目录 知识储备 基于多级特征融合的小目标深度检测网络实现 一、环境配置 二、核心代码实现 1. 多级特征融合模块(models/fpn.py ) 2. 主干网络(models/backbone.py ) 3. 检测头(models/detector.py ) 三、完整网络架构(models/net.py ) 四、训练代码(train.p…

【云原生】基于Centos7 搭建Redis 6.2 操作实战详解

目录 一、前言 二、Redis 6.2 安装过程 2.1 下载安装包 2.2 安装包解压 2.3 安装包编译 2.3 安装 2.4 启动redis 2.4.1 前台启动(不推荐) 2.4.2 后启动(推荐) 2.4.3 关闭redis服务 2.4.4 设置客户端连接 三、写在最后 …

云计算-容器云-服务网格

服务网格:创建VirtualService(3分) ​ 将Bookinfo应用部署到default命名空间下,为Bookinfo应用创建一个名为reviews的VirtualService,要求来自名为Jason的用户的所有流量将被路由到reviews服务的v2版本。(需要用到的软件包:ServiceMesh.tar.gz) # 上传解压 tar -xf Se…

【Res模块学习】结合CIFAR-100分类任务学习

初次尝试训练CIFAR-100:【图像分类】CIFAR-100图像分类任务-CSDN博客 1.训练模型(MyModel.py) import torch import torch.nn as nnclass BasicRes(nn.Module):def __init__(self, in_cha, out_cha, stride1, resTrue):super(BasicRes, sel…

爱胜品ICSP YPS-1133DN Plus黑白激光打印机报“自动进纸盒进纸失败”处理方法之一

故障现象如下图提示: 用户的爱胜品ICSP YPS-1133DN Plus黑白激光打印机在工作过程中提示自动进纸盒进纸失败并且红色故障灯闪烁; 给出常见故障一般处理建议如下: 当您的爱胜品ICSP YPS-1133DN Plus 黑白激光打印机出现“自动进纸盒进纸失败”…

Flinkcdc 实现 MySQL 写入 Doris

Flinkcdc 实现 MySQL 写入 Doris Flinkcdc 实现 MySQL 写入 Doris 一、环境配置 Doris:3.0.4 JDK 17 MySQL (业务数据库):5.7 MySQL(本地数据库):5.7 Flink:flink-1.19.1 flinkc…

【Linux庖丁解牛】—环境变量!

目录 1. 环境变量 1.1 概念介绍 1.2 命令行参数 1.3 一个例子,一个环境变量 1.4 认识更多的环境变量 1.5 获取环境变量的方法 a. 指令操作 b. 代码操作 1.6 理解环境变量的特性 a.环境变量具有全局特性 b.补充两个概念(为后面埋一个伏笔) 1. 环境变量 …

LangChain4j +DeepSeek大模型应用开发——7 项目实战 创建硅谷小鹿

这部分我们实现硅谷小鹿的基本聊天功能,包含聊天记忆、聊天记忆持久化、提示词 1. 创建硅谷小鹿 创建XiaoLuAgent package com.ai.langchain4j.assistant;import dev.langchain4j.service.*; import dev.langchain4j.service.spring.AiService;import static dev…

普通 html 项目也可以支持 scss_sass

项目结构示例 下载vscode的插件Live Sass Compiler 自动监听编译scss 下载插件Live Server 用于 web 服务器,打开 html 文件到浏览器,也可以不用这个,自己用 nginx 或者宝塔其他 web 工具 新建一个 index.scss打开,点击 vscode 底…

网工_IP协议

2025.02.17:小猿网&网工老姜学习笔记 第19节 IP协议 9.1 IP数据包的格式(首部数据部分)9.1.1 IP协议的首部格式(固定部分可变部分) 9.2 IP数据包分片(找题练)9.3 TTL生存时间的应用9.4 常见…