Translation validation

  • A. Pnueli
  • M. Siegel
  • E. Singerman
Regular Sessions Various Applications
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1384)


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:
  1. 1.

    A common semantic framework for the representation of the source code and the generated target code.

  2. 2.

    A formalization of the notion of “correct implementation” as a refinement relation.

  3. 3.

    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.


  1. [AL91]
    M. Abadi and L. Lamport. The existence of refinement mappings. Theoretical Computer Science, 82(2), 1991.Google Scholar
  2. [BG]
    G. Berry and G. Gonthier. The Synchronous Programming Language Esterel, Design, Semantics, Implementation. Technical Report 327, INRIA.Google Scholar
  3. [BGJ91]
    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.Google Scholar
  4. [C97]
    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.Google Scholar
  5. [CHPP87]
    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.Google Scholar
  6. [CMB88]
    K. M. Chandy and J. Misra. Parallel Program Design. Addison-Wesley, 1988.Google Scholar
  7. [H87]
    D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, 8, pages 231–274, 1987.zbMATHMathSciNetCrossRefGoogle Scholar
  8. [Jon91]
    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.Google Scholar
  9. [KMP94]
    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.Google Scholar
  10. [Lam91]
    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.Google Scholar
  11. [LV91]
    N. Lynch and F. Vaandrager. Forward and backward simulations for timing based systems. In Real-Time: Theory in Practice, volume 600 of LNCS, 1991.Google Scholar
  12. [MP91]
    Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer Verlag, 1991.Google Scholar
  13. [MP95]
    Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. Springer-Verlag, New York, 1995.Google Scholar
  14. [N97]
    G. C. Necula. Proof-Carrying Code. In POPL'97, ACM press, pages 106–119, 1997.Google Scholar
  15. [NL96]
    G. C. Necula and P. Lee. Safe kernel extensions without run-time checking. In Second Symposium on Operating Systems Design and Implementations, Usenix, 1996.Google Scholar
  16. [PS96]
    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.Google Scholar
  17. [PS97]
    A. Pnueli and E. Singerman. Fair synchronous transition systems and their liveness proofs. Technical report, Weizmann Institute of Science, 1997. Sacres Report.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • A. Pnueli
    • 1
  • M. Siegel
    • 1
  • E. Singerman
    • 1
  1. 1.Weizmann Institute of ScienceRehovotIsrael

Personalised recommendations