递归记录语义下的对象系统深入解析
1. 核心语言语法
在我们所讨论的系统中,核心语言的语法构建基于给定的变量集 (X)(由 (x, y, z) 等表示)和标签集 (L)。以下是语法的详细构成:
| 类别 | 语法规则 |
| ---- | ---- |
| 表达式(Expressions) | (M, N \cdots) |
| 核心构造(Core Constructs) | (V \mid (MN) \mid (let D in M)) |
| 记录操作(Record Operations) | (\langle M, \ell = N \rangle \mid (M.\ell) \mid (M\setminus\ell)) |
| 值(Values) | (x \mid ref \mid! \mid set \mid (set V) \mid \lambda xM \mid () \mid R) |
| 记录值(Record Values) | (x \mid \langle \rangle \mid \langle R, \ell = V \rangle) |
| 声明(Declarations) | (x = N \mid rec x = N) |
其中,记录操作有着明确的规则。例如,(\langle M, \ell = N \rangle) 表示将记录 (M) 扩展一个新的字段,标签为 (\ell),值为 (N)。但只有当 (M) 不包含 (\ell) 字段时,该操作才是类型良好的。而限制操作 ((M\setminus\ell)) 则是从记录 (M) 中移除 (\ell) 字段,前提是 (M) 必须包含该字段。
超级会员免费看
订阅专栏 解锁全文
3395

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



