Instantaneous Termination in Pure Esterel

  • Olivier Tardieu
  • Robert de Simone
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2694)

Abstract

Esterel is a design language for the representation of embedded systems. Based on the synchronous reactive paradigm, its execution relies on a clear distinction of instants of computation. As a consequence, deciding whether a piece of a program may or may not run instantaneously is central to any compilation scheme, both for correctness and efficiency. In general, this information can be obtained by an exhaustive exploration of all possible execution paths, which is expensive. Most compilers approximate it through algorithmic methods amenable to static analysis. In our contribution, we first formalize the analysis involved in detecting statements that may run instantaneously. Then, we identify statements that may terminate and be instantaneously reentered. This allows us to model precisely these compilers front-end activities with a clear mathematical specification and led us to uncover inefficiencies in the Esterel v5 academic compiler from Ecole des Mines and INRIA.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    H. P. Barendregt. The Lambda Calculus. Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, 1984.Google Scholar
  2. 2.
    G. Berry. Real-time programming: General purpose or special-purpose languages. In G. Ritter, editor, Information Processing 89, pages 11–17. Elsevier Science Publishers B.V. (North Holland), 1989.Google Scholar
  3. 3.
    G. Berry. Esterel on hardware. Philosophical Transactions of the Royal Society of London, Series A, 19(2):87–152, 1992.MATHMathSciNetCrossRefGoogle Scholar
  4. 4.
    G. Berry. The semantics of pure Esterel. In M. Broy, editor, Program Design Calculi, volume 118 of Series F: Computer and System Sciences, pages 361–409. NATO ASI Series, 1993.Google Scholar
  5. 5.
    G. Berry. The constructive semantics of pure Esterel. Draft version 3. http://www-sop.inria.fr/meije/, July 1999.Google Scholar
  6. 6.
    G. Berry. The Esterel v5 language primer. http://www-sop.inria.fr/meije/, July 2000.Google Scholar
  7. 7.
    G. Berry. The foundations of Esterel. In Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, 2000.Google Scholar
  8. 8.
    G. Berry and G. Gonthier. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming, 19(2):87–152, 1992.MATHCrossRefGoogle Scholar
  9. 9.
    F. Boussinot and R. de Simone. The Esterel language. Another Look at Real Time Programming, Proceedings of the IEEE, 79:1293–1304, 1991.Google Scholar
  10. 10.
    E. Closse, M. Poize, J. Pulou, P. Vernier, and D. Weil. Saxo-rt: Interpreting Esterel semantic on a sequential execution structure. Electronic Notes in Theoretical Computer Science, 65, 2002.Google Scholar
  11. 11.
    P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  12. 12.
    N. G. de Bruijn. Lambda calculus notation with nameless dummies. a tool for automatic formula manipulation with application to the church-rosser theorem. Indagationes Mathematicae, 34:381–392, 1972.Google Scholar
  13. 13.
    S.A. Edwards. Compiling Esterel into sequential code. In Proceedings CODES’99, Rome, Italy, May 1999.Google Scholar
  14. 14.
    S.A. Edwards. Languages for Digital Embedded Systems. Kluwer, 2000.Google Scholar
  15. 15.
    G. Gonthier. Sémantique et modèles d’exécution des langages réactifs synchrones: application à Esterel. Thèse d’informatique, Université d’Orsay, Paris, France, March 1988.Google Scholar
  16. 16.
    N. Halbwachs. Delay analysis in synchronous programs. In Computer Aided Verification, pages 333–346, 1993.Google Scholar
  17. 17.
    N. Halbwachs. Synchronous Programming of Reactive Systems. Kluwer, 1993.Google Scholar
  18. 18.
    F. Mignard. Compilation du langage Esterel en systèmes d’équations booléennes. Thèse d’informatique, Ecole des Mines de Paris, October 1994.Google Scholar
  19. 19.
    R. Milner. Communication and Concurrency. Series in Computer Science. Prentice Hall, 1989.Google Scholar
  20. 20.
    G. Plotkin. A structural approach to operational semantics. Report DAIMI FN-19, Aahrus University, 1981.Google Scholar
  21. 21.
    H. Toma. Analyse constructive et optimisation séquentielle des circuits générés à partir du langage synchrone réactif Esterel. Thèse d’informatique, Ecole des Mines de Paris, September 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Olivier Tardieu
    • 1
  • Robert de Simone
    • 1
  1. 1.INRIASophia AntipolisFrance

Personalised recommendations