Translation Validation for Clock Transformations in a Synchronous Compiler

  • Van Chan NgoEmail author
  • Jean-Pierre Talpin
  • Thierry Gautier
  • Paul Le Guernic
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9033)


Translation validation was introduced as a technique to formally verify the correctness of code generators that attempts to ensure that program transformations preserve the semantics of input program. In this work, we adopt this approach to construct a validator that formally verifies the preservation of clock semantics during the Signal compiler transformations. The clock semantics is represented as a first-order logic formula called clock model. We then introduce a refinement which expresses the preservation of clock semantics, as a relation on clock models. Our validator does not require any instrumentation or modification of the compiler, nor any rewriting of the source program.


Formal Verification Translation Validation Certified Compiler Smt Solver Synchronous Data-Flow Languages 


  1. 1.
    Ackerman, W.: Solvable Cases of the Decision Problem. Study in Logic and the Foundations of Mathematics. North-Holland, Amsterdam (1954)Google Scholar
  2. 2.
    Berry, G.: The Foundations of Esterel. In: Proof, Language and Interaction: Essay in Honor of Robin Milner, MIT Press (2000)Google Scholar
  3. 3.
    Borger, E., Gradel, E., Gurevich, Y.: The Classical Decision Problem. Spinger-Verlag (1996)Google Scholar
  4. 4.
    Besnard, L., Gautier, T., Le Guernic, P., Talpin, J.-P.: Compilation of Polychronous Data Flow Equations. In: Synthesis of Embedded Software. Springer (2010)Google Scholar
  5. 5.
    Benveniste, A., LeGuernic, P.: Hybrid Dynamical Systems Theory and the Signal Language. IEEE Transactions on Automatic Control 35(5), 535–546 (1990)CrossRefzbMATHMathSciNetGoogle Scholar
  6. 6.
    Bryant, R.: Graph-based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers, C 35(8), 677–691 (1986)CrossRefzbMATHGoogle Scholar
  7. 7.
    Inria, The CompCert Project,
  8. 8.
    Inria, The Coq Proof Assitant,
  9. 9.
    Dutertre, B., de Moura, L.: Yices Sat-solver (2009),
  10. 10.
    Gamatié, A.: Designing Embedded Systems with the Signal Programming Language: Synchronous, Reactive Specification, pp. 971–978. Springer, New York (2009) ISBN 978-1-4419-0940-4Google Scholar
  11. 11.
    Kahn, G. (ed.): FPCA 1987. LNCS, vol. 274. Springer, Heidelberg (1987)zbMATHGoogle Scholar
  12. 12.
    Gamatié, A., Gonnord, L.: Static Analysis of Synchronous Programs in Signal for Efficient Design of Multi-Clocked Embedded Systems. In: ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools and Theory for Embedded Systems - LCTES 2011, Chicago, IL, USA (April 2011)Google Scholar
  13. 13.
    Halbwachs, N.: A Synchronous Language at Work: the Story of Lustre. In: 3th ACM-IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2005 (July 2005)Google Scholar
  14. 14.
    Le Guernic, P., Gautier, T.: Advanced Topics in Data-flow Computing, Chapter Data-flow to von Neumann: the Signal Approach, pp. 413–438. Prentice-Hall (1991)Google Scholar
  15. 15.
    Leroy, X.: Formal Certification of a Compiler Back-end, or Programming a Compiler with a Proof Assistant. In: 33rd Symposium Principles of Programming Languages, pp. 42–54. ACM Press (2006)Google Scholar
  16. 16.
    Necula, G.C.: Translation Validation for an Optimizing Compiler. In: Proceeding PLDI 2000 Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, pp. 83–94 (May 2000)Google Scholar
  17. 17.
    Ngo, V.C., Talpin, J.-P., Gautier, T., Le Guernic, P., Besnard, L.: Formal Verification of Compiler Transformations on Polychronous Equations. In: Derrick, J., Gnesi, S., Latella, D., Treharne, H. (eds.) IFM 2012. LNCS, vol. 7321, pp. 113–127. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  18. 18.
    Ngo, V.C.: Formal Verification of a Synchronous Data-flow Compiler: from Signal to C. In: PhD thesis (2014)Google Scholar
  19. 19.
    Inria/Espresso, Polychrony Toolset,
  20. 20.
    Pnueli, A., Siegel, M., Singerman, E.: Translation Validation. In: Steffen, B. (ed.) TACAS 1998. LNCS, vol. 1384, pp. 151–166. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  21. 21.
    Pnueli, A., Shtrichman, O., Siegel, M.: Translation Validation: From Signal to C. In: Olderog, E.-R., Steffen, B. (eds.) Correct System Design. LNCS, vol. 1710, pp. 231–255. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  22. 22.
    RTCA, DO-178C,
  23. 23.
    Stump, A., Deters, M.: SMT-Comp (2009),
  24. 24.
    Tristan, J.-B., Govereau, P., Morrisett, G.: Evaluating Value-graph Translation Validation for LLVM. In: ACM SIGPLAN Conference on Programming and Language Design Implementation, California (June 2011)Google Scholar
  25. 25.
    Tristan, J.-B., Leroy, X.: A Simple, Verified Validator for Software Pipelining. In: 37th Principles of Programming Languages, pp. 83–92. ACM Press (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Van Chan Ngo
    • 1
    Email author
  • Jean-Pierre Talpin
    • 1
  • Thierry Gautier
    • 1
  • Paul Le Guernic
    • 1
  1. 1.INRIA Rennes - Bretagne AtlantiqueRennes CedexFrance

Personalised recommendations