The verification of low-level code
Software Engineering Journal
Parallel program design: a foundation
Parallel program design: a foundation
The existence of refinement mappings
Theoretical Computer Science
Synchronous programming with events and relations: the SIGNAL language and its semantics
Science of Computer Programming
VLISP: a verified implementation of Scheme
Lisp and Symbolic Computation
The VLISP verified Scheme system
Lisp and Symbolic Computation
The VLISP verified PreScheme compiler
Lisp and Symbolic Computation
Modular Compiler Verification: A Refinement-Algebraic Approach Advocating Stepwise Abstraction
Modular Compiler Verification: A Refinement-Algebraic Approach Advocating Stepwise Abstraction
TACAS '98 Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Provably Correct Compiler Development and Implementation
CC '92 Proceedings of the 4th International Conference on Compiler Construction
A Provably Correct Embedded Verifier for the Certification of Safety Critical Software
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
A Platform for Combining Deductive with Algorithmic Verification
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
SAS'10 Proceedings of the 17th international conference on Static analysis
A generic tool for tracing executions back to a DSML's operational semantics
ECMFA'11 Proceedings of the 7th European conference on Modelling foundations and applications
SDL versus c equivalence checking
SDL'05 Proceedings of the 12th international conference on Model Driven
Formal verification of compiler transformations on polychronous equations
IFM'12 Proceedings of the 9th international conference on Integrated Formal Methods
Formal verification of synchronous data-flow program transformations toward certified compilers
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
Translation validation is an alternative to the verification of translators (compilers, code generators). Rather than proving in advance that the compiler always produces a target code which correctly implements the source code (compiler verification), each individual translation (i.e. a run of the compiler) is followed by a validation phase which verifies that the target code produced on this run correctly implements the submitted source program. In order to be a practical alternative to compiler verification, a key feature of this validation is its full automation. Since the validation process attempts to "unravel" the transformation effected by the translators, its task becomes increasingly more difficult (and necessary) with the increase of sophistication and variety of the optimizations methods employed by the translator. In this paper we address the practicability of translation validation for highly optimizing, industrial code generators from Signal, a widely used synchronous language, to C. We introduce new abstraction techniques as part of the automation of our approach.