在K框架下基于谓词抽象的收集语义
1. K框架简介
K是一个基于重写逻辑的框架,用于编程语言的设计和分析。它由配置(configurations)和规则(rules)组成。配置由K单元(cells)构成,是有标签且嵌套的结构,代表程序状态;规则分为计算规则(computational rules)和结构规则(structural rules),前者可视为程序执行中的状态转换,后者用于调整项以应用计算规则。K框架能够定义模块化且可执行的编程语言语义。
以简单的命令式语言SIMP为例,它包含简单整数算术、基本布尔表达式、赋值语句、if语句、while语句、顺序组合和代码块。SIMP的K语法、注释和语义如下表所示:
| SIMP抽象语法 | 严格属性(Strictness Attribute) | K规则(SIMP语言语义) |
| — | — | — |
| AExp ::= Var \| Int | sq | ⟨x ⟩k ⟨σ⟩state ⇒ σ[x]
i1 + i2 → i1 +Int i2 |
| BExp ::= AExp <= AExp | sq | i1 <= i2 → i1 ≤Int i2 |
| Stmt ::= skip | | skip → · |
| Stmt ::= Var := AExp |
超级会员免费看
订阅专栏 解锁全文
18

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



