CASM-IR与Event-B在系统建模中的应用解析
1. CASM-IR系统实现与特性
CASM系统实现以库依赖图的形式呈现,其运行时和后端库基于对应的CASM无感知即时发射语言(CJEL)库,所有库均采用C++11/14标准实现。
CASM-IR模型的实现包含两个主要基类:Type和Value。类型系统和类型层次结构依据特定定义实现,其他模型实例均为Value类的子类,这种设计借鉴自LLVM编译器项目。CASM-IR实现提供了丰富的应用程序编程接口(API),通过内部类型映射结构可获取所有定义的类型关系,实现了前端语言定义与IR内部的清晰分离。
基于CASM-IR设计的CASM语言前端,其抽象语法树(AST)的设计比以往更简单清晰,因为类型、运算符和内置函数的设计决策已在CASM-IR实现中完成,AST仅关注输入语言本身。CASM是一种静态强类型推断语言,前端输入规范语言与CASM-IR模型的区别在于,前端语言需要符号解析器、类型检查器和类型推断过程来对解析后的输入规范AST表示进行完整类型化。在分析过程中,前端使用CASM-IR的API查询和检查特定类型、内置函数和运算符是否存在,并通过预定义的类型关系推断正确类型。此外,前端工程师还可直接调用CASM-IR的评估工具函数进行运算符指令和内置函数的计算。
以下是CASM-IR相关的依赖关系表格:
| 组件 | 依赖关系 |
| — | — |
| CASM运行时库 | 依赖CJEL运行时库 |
| CASM后端库 | 依赖CJEL后端库 |
| 前端 | 使用CASM-IR API |
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



