K-Maude:用于编程语言语义的基于重写的工具
1. 引言
K-Maude 是一个专门用于编写复杂编程语言和模型定义的工具,它建立在重写逻辑之上,是 Maude 的扩展。用户在编写语言定义时可自由选择是否使用 K 符号。接下来,我们将详细介绍 K-Maude 的相关内容。
2. 符号与语法约定
2.1 匿名变量与单元元素
在匹配过程中,匿名变量符号‘ ’仅用于匹配目的。在单元格匹配时,通常在规则中只使用/替换一个对象,但需匹配整个单元格的内容。例如,在从存储中读取变量的规则里,有多种符号用于指定匹配和替换的位置。
对于 List、Set、Map 和 K 类型,单元元素是‘.’。当需要消除歧义时,可在‘.’后加上类型名称,如配置项中的初始值或空计算‘.K’。预处理器会将它们转换为 Maude 表示中使用的正确常量,还允许在规则中内联声明变量,避免额外的变量声明。
2.2 K-Maude 符号
K-Maude 工具使用的符号是 K 数学符号的一维 ASCII 版本。例如,Imp++ 赋值规则的 K 数学表示为:
⟨X = I; · ⟩k ⟨ X →N ⟩env ⟨ N → I ⟩store
该规则表明,若赋值 X = I 是第一个计算任务,且 X 在环境中的位置为 N ,则将存储中位置 N 的内容替换为 I 并丢弃该赋值
超级会员免费看
订阅专栏 解锁全文
17

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



