Software—Practice & Experience
The Parallel Assignment Problem Redefined
IEEE Transactions on Software Engineering
Compiling with continuations
Verification of non-functional programs using interpretations in type theory
Journal of Functional Programming
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Defining and reasoning about recursive functions: a practical tool for the coq proof assistant
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
A structured approach to proving compiler optimizations based on dataflow analysis
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Formal verification of a c compiler front-end
FM'06 Proceedings of the 14th international conference on Formal Methods
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
Proceedings of the 13th International Workshop on Software & Compilers for Embedded Systems
A formally verified SSA-Based middle-end: Static single assignment meets compcert
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Hardware acceleration for programs in SSA form
Proceedings of the 2013 International Conference on Compilers, Architectures and Synthesis for Embedded Systems
Formal Verification of an SSA-Based Middle-End for CompCert
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
This article describes the formal verification of a compilation algorithm that transforms parallel moves (parallel assignments between variables) into a semantically-equivalent sequence of elementary moves. Two different specifications of the algorithm are given: an inductive specification and a functional one, each with its correctness proofs. A functional program can then be extracted and integrated in the Compcert verified compiler.