语义值限制的经典可实现性模型探索
1. 相关工作
在当前的研究领域中,将按值调用求值、副作用和依赖积相结合是一个全新的尝试。过去还没有完全兼容副作用和按值调用的依赖积实现。以下是一些相关系统及其特点:
| 系统名称 | 特点 | 不足 |
| ---- | ---- | ---- |
| Aura 语言 | 禁止在依赖应用中依赖非值的项 | 存在值限制 |
| F ⋆ 语言 | 依赖(部分)let - 范式来强制参数位置为值 | - |
| Daniel Licata 和 Robert Harper 定义的正依赖类型 | 只允许对严格正类型的依赖 | - |
| ATS 和 DML 语言 | 依赖类型限于特定的索引语言 | - |
| NuPrl | 有与本文 (≡) 关系类似的观察等价关系 (∼),基于 Kleene 风格的可实现性模型,可对无类型项进行推理 | 与经典推理不一致 |
| Coq 和 Agda | 基于 Curry - Howard 对应,提供依赖类型,可定义非常有表现力的规范 | 不能直接对经典逻辑进行计算解释,类型检查器只允许终止程序,终止检查困难 |
| TRELLYS 项目 | 旨在提供一个一致核心与带一般递归的类型安全依赖类型编程交互的语言,按值调用且允许副作用 | 存在值限制,其演算为 Church 风格,项和类型同时定义 |
| Alexandre Miquel 的系统 | 命题可以是经典的且为 Curry 风格 | 语言其余部分为 Church 风格,未嵌入完整的 ML 类语言 |
| PVS 系统 | 基于经典高阶逻辑 | 不是编程语言,而是规范语言,通过生成证明义务处理类型
超级会员免费看
订阅专栏 解锁全文
6万+

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



