skip to main content
article

Loops in esterel

Published:01 November 2005Publication History
Skip Abstract Section

Abstract

ESTEREL is a synchronous design language for the specification of reactive systems. Thanks to its compact formal semantics, code generation for ESTEREL is essentially provably correct. In practice, due to the many intricacies of an optimizing compiler, an actual proof would be in order. To begin with, we need a precise description of an efficient translation scheme, into some lower-level formalism. We tackle this issue on a specific part of the compilation process: the translation of loop constructs. First, because of instantaneous loops, programs may generate runtime errors, which cannot be tolerated for embedded systems, and have to be predicted and prevented at compile time. Second, because of schizophrenia, loops must be partly unfolded, making C code generation, as well as logic synthesis, nonlinear in general. Clever expansion strategies are required to minimize the unfolding. We first characterize these two difficulties w.r.t. the formal semantics of ESTEREL. We then derive very efficient, correct-by-construction algorithms to verify and transform loops at compile time, using static analysis and program rewriting techniques. With this aim in view, we extend the language with a new gotopause construct, which we use to encode loops. It behaves as a noninstantaneous jump instruction compatible with concurrency.

References

  1. André, C. 1996a. Representation and analysis of reactive behaviors: A synchronous approach. In Proceedings of the IMACS/IEEE SMC Multiconference on Computational Engineering in Systems Applications. IEEE-SMC, Lille, France. 19--29.]]Google ScholarGoogle Scholar
  2. André, C. 1996b. SyncCharts: a visual representation of reactive behaviors. Tech. Rep. RR 95-52, rev. RR 96-56, I3S, Sophia-Antipolis, France.]]Google ScholarGoogle Scholar
  3. Barendregt, H. P. 1981. The Lambda Calculus, Its Syntax and Semantics. Studies in Logics and the Foundations of Mathematics, Vol. 103. North-Holland, Amsterdam, The Netherlands.]]Google ScholarGoogle Scholar
  4. Benveniste, A., Caspi, P., Edwards, S., Halbwachs, N., Le Guernic, P., and de Simone, R. 2003. The synchronous languages twelve years later. Embedded Systems, Proceedings of the IEEE, Special issue 91, 1, 64--83.]]Google ScholarGoogle Scholar
  5. Berry, G. 1999. The constructive semantics of pure Esterel. http://www-sop.inria.fr/esterel.org/.]]Google ScholarGoogle Scholar
  6. Berry, G. 2000a. The Esterel language primer v5_91. http://www-sop.inria.fr/esterel.org/.]]Google ScholarGoogle Scholar
  7. Berry, G. 2000b. The foundations of Esterel. In Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, Cambridge, MA. 425--454.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Berry, G. and Cosserat, L. 1984. The synchronous programming language Esterel and its mathematical semantics. In Seminar on Concurrency. Lecture Notes in Computer Science, vol. 197. Springer, Pittsburg, PA. 389--448.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Berry, G. and Gonthier, G. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming 19, 2, 87--152.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Boussinot, F. and de Simone, R. 1991. The Esterel language. Another Look at Real Time Programming, Proceedings of the IEEE, Special Issue 79, 9, 1293--1304.]]Google ScholarGoogle ScholarCross RefCross Ref
  11. Brayton, R. K., Hachtel, G. D., Sangiovanni-Vincentelli, A., Somenzi, F., Aziz, A., Cheng, S. T., Edwards, S., Khatri, S., Kukimoto, Y., Pardo, A., Qadeer, S., Ranjan, R. K., Sarwary, S., Shiple, T. R., Swamy, G., and Villa, T. 1996. VIS: a system for verification and synthesis. In Proceedings of the Eighth International Conference on Computer Aided Verification. Lecture Notes in Computer Science, Vol. 1102. Springer, New Brunswick, NJ. 428--432.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Clement, D. and Incerpi, J. 1989. Specifying the behavior of graphical objects using Esterel. In Proceedings of the International Joint Conference on Theory and Practice of Software Development. Lecture Notes in Computer Science, Vol. 352. Springer, Barcelona, Spain. 111--125.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Closse, E., Poize, M., Pulou, J., Venier, P., and Weil, D. 2002. Saxo-RT: Interpreting Esterel semantics on a sequential execution structure. In Proceedings of the Synchronous Languages, Applications, and Programming Workshop. Electronic Notes in Theoretical Computer Science, Vol. 65. Elsevier, Grenoble, France.]]Google ScholarGoogle Scholar
  14. Cousot, P. and Cousot, R. 1977. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4th ACM Symposium on Principles of Programmings Languages. ACM Press, Los Angeles, CA. 238--252.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Edwards, S. A. 2000. Languages for Digital Embedded Systems. Kluwer Academic Publ. Norwell, MA.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Edwards, S. A., Kapadia, V., and Halas, M. 2004. Compiling Esterel into static discrete-event code. In Proceedings of the Synchronous Languages, Applications, and Programming Workshop. Electronic Notes in Theoretical Computer Science. Elsevier, Barcelona, Spain.]]Google ScholarGoogle Scholar
  17. Gonthier, G. 1988. Sémantique et modèles d'exécution des langages réactifs synchrones: application à Esterel. Ph.D. thesis, Université d'Orsay.]]Google ScholarGoogle Scholar
  18. Halbwachs, N. 1992. Synchronous Programming of Reactive Systems. Kluwer Academic Publ. Norwell, MA.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Halbwachs, N., Caspi, P., Raymond, P., and Pilaud, D. 1991. The synchronous dataflow programming language Lustre. Another Look at Real Time Programming, Proceedings of the IEEE, Special Issue 79, 9, 1305--1320.]]Google ScholarGoogle ScholarCross RefCross Ref
  20. Hardin, R., Har'El, Z., and Kurshan, R. 1996. COSPAN. In Proceedings of the Eighth International Conference on Computer Aided Verification. Lecture Notes in Computer Science, Vol. 1102. Springer, New Brunswick, NJ.]]Google ScholarGoogle Scholar
  21. INRIA, ENSMP, and ARMINES. 2000. The Esterel v5_92 Compiler. http://www-sop.inria.fr/esterel.org/.]]Google ScholarGoogle Scholar
  22. Malik, S. 1993. Analysis of cyclic combinational circuits. In Proceedings of the 1993 IEEE/ACM International Conference on Computer-Aided Design. IEEE, Santa Clara, CA. 618--625.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Maraninchi, F. 1991. The Argos language: Graphical representation of automata and description of reactive systems. In Proceedings of the IEEE Workshop on Visual Languages. IEEE, Kobe, Japan.]]Google ScholarGoogle Scholar
  24. McMillan, K. 1993. Symbolic Model Checking. Kluwer Academic Publ. Norwell, MA.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Mignard, F. 1994. Compilation du langage Esterel en systèmes d'équations booléen-nes. Ph.D. thesis, Ecole des Mines de Paris.]]Google ScholarGoogle Scholar
  26. Namjoshi, K. S. and Kurshan, R. P. 1999. Efficient analysis of cyclic definitions. In Proceedings of the 11th International Conference on Computer Aided Verification. Lecture Notes in Computer Science, Vol. 1633. Springer, Trento, Italy. 394--405.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Park, D. 1981. Concurrency and automata on infinite sequences. In Proceedings of the 5th GI-Conference on Theoretical Computer Science. Lecture Notes in Computer Science, Vol. 104. Springer, Karlsruhe, Germany. 167--183.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Plotkin, G. 1981. A structural approach to operational semantics. Report DAIMI FN-19, Aarhus University, Denmark.]]Google ScholarGoogle Scholar
  29. Potop-Butucaru, D. 2002. Optimizations for faster execution of Esterel programs. Ph.D. thesis, Ecole des Mines de Paris.]]Google ScholarGoogle Scholar
  30. Schneider, K. 2000. A verified hardware synthesis of Esterel programs. In Proceedings of the IFIP WG10.3/WG10.4/WG10.5 International Workshop on Distributed and Parallel Embedded Systems: Architecture and Design of Distributed Embedded Systems. Kluwer, B.V., Deventer, The Netherlands. 205--214.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Schneider, K. and Wenz, M. 2001. A new method for compiling schizophrenic synchronous programs. In Proceedings of the 2001 international conference on Compilers, architecture, and synthesis for embedded systems. ACM Press, New York, NY. 49--58.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Schneider, K., Brandt, J., and Schüle, T. 2004. A verified compiler for synchronous programs with local declarations. In Proceedings of the Synchronous Languages, Applications, and Programming Workshop. Electronic Notes in Theoretical Computer Science. Elsevier, Barcelona, Spain.]]Google ScholarGoogle Scholar
  33. Shiple, T., Berry, G., and Touati, H. 1996. Constructive analysis of cyclic circuits. In Proceedings of the International Design and Testing Conference. IEEE, Paris, France. 328--333.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Tardieu, O. 2004a. Goto and concurrency: Introducing safe jumps in Esterel. In Proceedings of the Synchronous Languages, Applications, and Programming Workshop. Electronic Notes in Theoretical Computer Science. Elsevier, Barcelona, Spain.]]Google ScholarGoogle Scholar
  35. Tardieu, O. 2004b. Loops in Esterel: from operational semantics to formally specified compilers. Ph.D. thesis, Ecole des Mines de Paris. http://olivier.tardieu.free.fr/papers/these.pdf.]]Google ScholarGoogle Scholar
  36. Tardieu, O. and de Simone, R. 2003. Instantaneous termination in pure Esterel. In Proceedings of the 10th International Symposium on Static Analysis. Lecture Notes in Computer Science, Vol. 2694. Springer, San Diego, CA. 91--108.]]Google ScholarGoogle Scholar
  37. Tardieu, O. and de Simone, R. 2004. Curing schizophrenia by program rewriting in Esterel. In Proceedings of the Second ACM-IEEE International Conference on Formal Methods and Models for Codesign. IEEE, San Diego, CA.]]Google ScholarGoogle Scholar

Index Terms

  1. Loops in esterel

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!