维尔姆

为已验证的程序转换形式化LLVM中间表示。本文提出了Vellvm(verified LLVM),一个用于推理以LLVM的中间表示形式表示的程序以及对其进行操作的转换的框架。Vellvm为LLVM的中间表示、类型系统和SSA形式的属性提供了一个机械化的形式化语义。该框架使用Coq交互定理证明器构建。为了验证Vellvm的设计,我们从Coq形式化语义中提取一个解释器,它可以执行LLVM测试套件中的程序,并与LLVM参考实现进行比较。为了证明Vellvm的实用性,我们形式化并验证了先前提出的一个转换,该转换增强了C程序的空间内存安全性。通过验证llm的原始实现,可以将其转换为真实的lvm-hoc工具,从而验证其真实的性能。