Authors
Jianzhou Zhao, Santosh Nagarakatte, Milo MK Martin, Steve Zdancewic
Publication date
2012/1/25
Book
Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pages
427-440
Description
This paper presents Vellvm (verified LLVM), a framework for reasoning about programs expressed in LLVM's intermediate representation and transformations that operate on it. Vellvm provides a mechanized formal semantics of LLVM's intermediate representation, its type system, and properties of its SSA form. The framework is built using the Coq interactive theorem prover. It includes multiple operational semantics and proves relations among them to facilitate different reasoning styles and proof techniques.
To validate Vellvm's design, we extract an interpreter from the Coq formal semantics that can execute programs from LLVM test suite and thus be compared against LLVM reference implementations. To demonstrate Vellvm's practicality, we formalize and verify a previously proposed transformation that hardens C programs against spatial memory safety violations. Vellvm's tools allow us to extract a new, verified …
Total citations
20112012201320142015201620172018201920202021202220232024113202333223034281630162920
Scholar articles