【24h】

Modular, Correct Compilation with Automatic Soundness Proofs

机译:具有自动健全性证明的模块化,正确编译

获取原文

摘要

Formal verification of compiler correctness requires substantial effort. A particular challenge is lack of modularity and automation. Any change or update to the compiler can render existing proofs obsolete and cause considerable manual proof effort. We propose a framework for automatically proving the correctness of compilation rules based on simultaneous symbolic execution for the source and target language. The correctness of the whole system follows from the correctness of each compilation rule. To support a new source or target language it is sufficient to formalize that language in terms of symbolic execution, while the corresponding formalization of its counterpart can be re-used. The correctness of translation rules can be checked automatically. Our approach is based on a reduction of correctness assertions to formulas in a program logic capable of symbolic execution of abstract programs. We instantiate the framework for compilation from Java to LLVM IR and provide a symbolic execution system for a subset of LLVM IR.
机译:对编译器正确性的形式验证需要大量的精力。一个特殊的挑战是缺乏模块化和自动化。对编译器的任何更改或更新都可能使现有的证明过时,并导致大量的手动证明工作。我们提出了一个框架,该框架可根据源语言和目标语言的同时符号执行来自动证明编译规则的正确性。整个系统的正确性源于每个编译规则的正确性。为了支持一种新的源语言或目标语言,就可以在符号执行方面将这种语言形式化,而可以相应地重复使用对应语言的形式化就足够了。可以自动检查翻译规则的正确性。我们的方法基于将能够对抽象程序进行符号执行的程序逻辑中的正确性断言减少为公式。我们实例化了从Java到LLVM IR的编译框架,并为LLVM IR的子集提供了一个符号执行系统。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号