如何掌握 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.pswp.cn/bicheng/79420.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79420.shtml
英文地址,請注明出處:http://en.pswp.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 常見…