We present the notion of translation validation as a new approach 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. Several ingredients are necessary to set up the — fully automatic — translation validation process, among which are:
A common semantic framework for the representation of the source code and the generated target code.
A formalization of the notion of “correct implementation” as a refinement relation.
A syntactic simulation-based proof method which allows to automatically verify that one model of the semantic framework, representing the produced target code, correctly implements another model which represents the source.
These, and other ingredients are elaborated in this paper, in which we illustrate the new approach in a most challenging case. We consider a translation (compilation) from the synchronous multi-clock data-flow language Signal to asynchronous (sequential) C-code.
- M. Abadi and L. Lamport. The existence of refinement mappings. Theoretical Computer Science, 82(2), 1991.
- G. Berry and G. Gonthier. The Synchronous Programming Language Esterel, Design, Semantics, Implementation. Technical Report 327, INRIA.
- A. Benviniste, P. Le Guernic, and C. Jacquemot. Synchronous programming with event and relations: the SIGNAL language and its semantics. Science of Computer Programming, 16, 1991.
- A. Cimatti, F. Giunchiglia, P. Pecchiari, B. Pietra, J. Profeta, D. Romano, P. Traverso, and B. Yu. A Provably Correct Embedded Verifier for the Certification of Safety Critical Software. In O. Grumberg, editor, Proc. 9th Intl. Conference on Computer Aided Verification (CAV'97), Lect. Notes in Comp. Sci., vol. 1254, pages 202–213. Springer-Verlag, 1997.
- P. Caspi, N. Halbwachs, D. Pilaud, and J. Plaice. LUSTRE, a Declarative Language for Programming Synchronous Systems. POPL '87, ACM Press, pages 178–188, 1987.
- K. M. Chandy and J. Misra. Parallel Program Design. Addison-Wesley, 1988.
- D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, 8, pages 231–274, 1987. CrossRef
- B. Jonsson. Simulations between specifications of distributed systems. In J. C. M. Baeten and J. F. Groote, editors, CONCUR '91, volume 527 of LNCS, 1991.
- Y. Kesten, Z. Manna, and A. Pnueli. Temporal verification of simulation and refinement. In J.W. de Bakker, W.-P. de Roever, and G. Rozenberg, editors, A Decade of Concurrency, volume 803 of Lect. Notes in Comp. Sci. Springer-Verlag, 1994.
- L. Lamport. The temporal logic of actions. Technical Report 79, DEC, Systems Research Center, December 1991. To appear in Transactions on programming Languages and Systems.
- N. Lynch and F. Vaandrager. Forward and backward simulations for timing based systems. In Real-Time: Theory in Practice, volume 600 of LNCS, 1991.
- Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer Verlag, 1991.
- Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. Springer-Verlag, New York, 1995.
- G. C. Necula. Proof-Carrying Code. In POPL'97, ACM press, pages 106–119, 1997.
- G. C. Necula and P. Lee. Safe kernel extensions without run-time checking. In Second Symposium on Operating Systems Design and Implementations, Usenix, 1996.
- A. Pnueli and E. Shahar. A platform for combining deductive with algorithmic verification. In R. Alur and T. Henzinger, editors, Proc. 8th Intl. Conference on Computer Aided Verification (CAV'96), Lect. Notes in Comp. Sci., pages 184–195. Springer-Verlag, 1996.
- A. Pnueli and E. Singerman. Fair synchronous transition systems and their liveness proofs. Technical report, Weizmann Institute of Science, 1997. Sacres Report.
- Translation validation
- Book Title
- Tools and Algorithms for the Construction and Analysis of Systems
- Book Subtitle
- 4th International Conference, TACAS'98 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS'98 Lisbon, Portugal, March 28 – April 4, 1998 Proceedings
- pp 151-166
- Print ISBN
- Online ISBN
- Series Title
- Lecture Notes in Computer Science
- Series Volume
- Series ISSN
- Springer Berlin Heidelberg
- Copyright Holder
- Additional Links
- Industry Sectors
- eBook Packages
To view the rest of this content please follow the download PDF link above.