当前位置: 首页 > news >正文

Scade 6 编译原理的参考实现 - LustreC

Scade 6建模语言的编译原理基础在SCADE Suite v6于2008年发布的同年,在LCTES’08[Bie08]中发表。LCTES'08 中描述的编译机制,随后成为一些Lustre编译器的参考原理,比如Velus[Brun20]、Heptagon[Leonard13]、LustreC[LustreC]等。这里将对LustreC进行介绍。

LustreC编译器的架构围绕着于2008年在LCTES会议上提出的模块化编译方案构建。它是一款具备验证功能的开源Lustre语言编译器,目前主要通过CocoSim平台投入使用 —— 该平台是一款用于对Simulink模型执行验证与确认(V&V)的Matlab工具箱。在CocoSim内部,Lustre语言被用作中间表示(注:指编译过程中用于连接源代码与目标代码的中间代码形式),其生成代码或验证产物的功能主要依赖于LustreC编译器来实现。

背景补充: CocoSim

对CocoSim[CocoSim], CoCoSim是一款可从Matlab Simulink环境中直接调用的工具箱(功能类似Simulink Design Verifier)。该工具既可用于代码生成(例如生成C语言、Rust语言或Lustre语言代码),也可用于属性验证。其前端会执行一系列预处理操作(即把不同的Simulink模块转化为基础模块)以及优化操作。

预处理后的Simulink模型将作为编译器的输入。编译器对预处理后的Simulink模型进行模块化转换,并生成Lustre代码。此外,它还会对各种Simulink/Stateflow结构(如信号名称、模块类型等)进行记录。这使得在Lustre程序中能够追踪Simulink/Stateflow的结构。

生成的Lustre模型将作为外部Solver的输入。外部输入接收Lustre代码,并执行以下两种操作之一:(i) 将其编译为命令式代码(C语言或Rust语言);(ii) 对所提供的属性进行安全性分析。在编译方面,它使用LustreC;而在安全性验证方面,它使用Zustre、Kind2或JKind中的一种工具。安全性分析的结果会反馈到Matlab环境中。如果所提供的属性被证伪,CoCoSim会提供在Matlab环境中模拟反例轨迹的方法。

[Bie08]: Clock-directed Modular Code Generation for Synchronous Data-flow Languages
[Brun20]: 参考Lelio Brun的博士论文
[Leonard13]: 参考Leonard Gerard的博士论文
[LustreC]: gitlab.isae-supaero.fr/lustrec/lustrec-public-version
[CocoSim]: github.com/NASA-SW-VnV/CoCoSim

http://www.dtcms.com/a/392448.html

相关文章:

  • MFC List 控件详解:高效数据展示与管理
  • 从根到叶的二进制数之和(霍纳法则)
  • 隐私与合规内建:Python医疗AI编程中的SBOM、依赖监测与威胁建模实践分析(上)
  • 基于实战:如何高效调用陌讯AIGC检测RESTful API进行批量内容审核
  • 如何用kimi写一个最小excel软件
  • Ansible-script模块
  • ansible批量给网络设备下发配置
  • 使用 Bright Data Web Scraper API Python 高效抓取 Glassd
  • uni-app 用scroll-view实现横向滚动
  • Kafka 图形界面客户端工具
  • 【开题答辩全过程】以 Php产品报价系统的设计与实现为例,包含答辩的问题和答案
  • 软件测试基础知识(网络协议)
  • 手机中的轻量化 AI 算法:智能生活的幕后英雄
  • wo店模式兴起旧模式式微:本地生活服务市场的深度变革
  • 服务器磁盘空间满了怎么办?阿里云ECS清理与云盘扩容教程
  • OpenAI推出更擅长AI代理编码的GPT-5-Codex,与Claude code有何区别?国内怎么使用到Codex呢?
  • GPT-5 深度测试报告:前端编程能力专项评估
  • AIGC发展:从GPT-1到GPT-4的技术演进与行业革新
  • 从AI生成到学术表达:如何有效降低AI率,实现论文合规化写作
  • 【国二】C语言选择题精华速记
  • 聊聊和AutoDL的故事
  • 【状态机实现】前置——设计模式中的孪生兄弟(状态模式和策略模式)
  • 【LeetCode - 每日1题】设计路由器
  • springboot宠物领养救助平台的开发与设计(代码+数据库+LW)
  • CSS的三大特性
  • 实现excel的树形导出
  • 基于Matlab的GPS/北斗系统抗脉冲与窄带干扰算法研究及仿真验证
  • linux之负载均衡Nginx+多开Tomcat
  • 浏览器私有前缀、CSS3:2D转换、动画、3D转换
  • Redis核心面试知识点汇总