函数式程序验证转换与并发模型表达能力分析
在当今的计算机科学领域,函数式程序的编译器验证以及并发模型的表达能力分析是两个重要的研究方向。下面将分别对这两个方面进行详细介绍。
函数式程序验证转换
编译器验证一直是一个活跃的研究领域,特别是在编译函数式语言方面。有许多具有雄心的项目,例如:
- CakeML项目 :实现了从ML的一个子集到X86汇编语言的编译器,并使用HOL4进行了验证。
- Dargaye的工作 :使用Coq验证了从ML的一个子集到CompCert使用的中间语言的编译器。
- Hur和Dreyer的工作 :基于逻辑关系风格的程序等价性定义,使用Coq开发了一个从ML的一个子集到汇编代码的单遍验证编译器。
- Neis等人的工作 :使用Coq开发了一个名为Pilsner的多遍验证编译器,其证明基于一种称为参数化语言间模拟(PILS)的语义保留概念。
这些项目基本上都使用了一阶绑定处理,如基于De Bruijn风格的表示。
与其他项目相比,本文的工作在一些方面有所不同。以Chlipala的Lambda Tamer项目的一部分为例,他描述了在Coq中使用基于逻辑关系的程序等价性定义来验证实现STLC编译器的工作。该工作使用了高阶语法表示,但没有充分利用λ - 树语法的所有优点。Chlipala的闭包转换实现约有400行Coq代码,而本文的实现只需要约70行λProlog代码。Chlipala的正确性证明约有270行,并且受益于Lambda Tamer项目的自动化框
超级会员免费看
订阅专栏 解锁全文

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



