如何使你的论文运行:你的语言的可执行形式语义

主要观点:介绍了使用 Makam 语言来指定简单类型 lambda 演算(带有递归和数字)的可执行语义的简单示例,Makam 是一种强大但尚未广为人知的编程语言,可用于快速语言原型设计,能处理抽象、变量替换等,通过语法、类型检查和操作语义等方面的实现来展示其功能。
关键信息

  • Makam 基于高阶逻辑编程,可定义高阶项之间的关系,通过搜索给定命题的证明来计算。
  • 示例中实现了 PCF(简单类型 lambda 演算),包括语法(如 Num、箭头类型、各种项的构造等)、类型系统(如类型推导规则)和操作语义规则(如各种求值规则),并在 Makam 中进行了相应实现。
    重要细节
  • 在语法部分,定义了 PCF 术语和类型的结构,在 Makam 中通过不同的声明来表示,如 tpterm 类型,以及各种项的构造函数。
  • 类型系统部分,给出了标准的类型推导规则,并在 Makam 中通过 typeof 关系进行实现,不同规则的实现方式有所不同,如 zero 无需假设可直接类型化等。
  • 操作语义部分,定义了求值规则,如函数应用、lambda 抽象、递归等的求值,在 Makam 中通过 eval 关系实现,如 eval (fix S) V 的实现方式等。
  • 最后提到 Makam 能处理的内容远不止此,建议阅读相关论文和查看仓库以了解更多,同时强调仅展示了指定语言的一小部分及存在更多挑战。
阅读 10
0 条评论