skip to main content
article
Open Access

A deterministic logical semantics for pure Esterel

Published:01 April 2007Publication History
Skip Abstract Section

Abstract

Esterel is a synchronous design language for the specification of reactive systems. There exist two main semantics for Esterel. On the one hand, the logical behavioral semantics provides a simple and compact formalization of the behavior of programs using SOS rules. But it does not ensure deterministic deadlock-free executions, as it may define zero, one, or many possible behaviors for a given program and input sequence. Since nondeterministic programs have to be rejected by compilers, this means that it defines behaviors for incorrect programs, which is awkward. On the other hand, the constructive semantics is deterministic (amongst other properties) but at the expense of a much more complex formalism. In this work, we build and thoroughly analyze a new deterministic semantics for Esterel that retains the simplicity of the logical behavioral semantics from which it derives. It defines, at most, one behavior per program and input sequence. We further extend this semantics with the ability to deal with errors so that incorrect programs are no longer (negatively) characterized by a lack of behavior, but (positively) by the existence of an incorrect behavior. In our view, this new semantics, with or without explicit errors, provides a better framework for formal and automated reasoning about Esterel programs.

References

  1. Benveniste, A. and Berry, G. 1991. The synchronous approach to reactive real-time systems. Proc. IEEE 79, 9, 1270--1282.Google ScholarGoogle ScholarCross RefCross Ref
  2. Benveniste, A., Caspi, P., Edwards, S., Halbwachs, N., Le Guernic, P., and de Simone, R. 2003. The synchronous languages twelve years later. Proc. IEEE 91, 1, 64--83.Google ScholarGoogle ScholarCross RefCross Ref
  3. Berry, G. 1993. Preemption and concurrency. In Proceedings of the Conference on Foundations of Software Technology and Theoretical Computer Science. Lecture Notes in Computer Science, vol. 761. Springer Verlag. 72--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Berry, G. 1999. The constructive semantics of pure Esterel. http://www-sop.inria.fr/esterel.org/.Google ScholarGoogle Scholar
  5. Berry, G. 2000a. The Esterel language primer v5_91. http://www-sop.inria.fr/esterel.org/.Google ScholarGoogle Scholar
  6. 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
  7. Berry, G. and Cosserat, L. 1984. The synchronous programming language Esterel and its mathematical semantics. In Proceedings of the Seminar on Concurrency. Lecture Notes in Computer Science, vol. 197. Springer Verlag. 389--448. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Berry, G. and Gonthier, G. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Sci. Comput. Program. 19, 2, 87--152. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Boussinot, F. and de Simone, R. 1991. The Esterel language. Proc. IEEE 79, 1293--1304.Google ScholarGoogle ScholarCross RefCross Ref
  10. Edwards, S. 2000. Languages for Digital Embedded Systems. Kluwer Academic, Norwell, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 (Barcelona, Spain). Electronic Notes in Theoretical Computer Science. Elsevier.Google ScholarGoogle Scholar
  12. 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
  13. Groote, J. F. 1993. Transition system specifications with negative premises. Theor. Comput. Sci. 118, 2, 263--299. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Halbwachs, N. 1993. Synchronous Programming of Reactive Systems. Kluwer Academic, Norwell, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Halbwachs, N., Caspi, P., Raymond, P., and Pilaud, D. 1991. The synchronous dataflow programming language Lustre. Proc. IEEE 79, 9, 1305--1320.Google ScholarGoogle ScholarCross RefCross Ref
  16. INRIA, ENSMP, and ARMINES. 2000. The Esterel v5_92 compiler. http://www-sop.inria.fr/esterel.org/.Google ScholarGoogle Scholar
  17. Le Guernic, P., Le Borgne, M., Gauthier, T., and Lemaire, C. 1991. Programming real time applications with Signal. Proc. IEEE 79, 9, 1321--1336.Google ScholarGoogle ScholarCross RefCross Ref
  18. Malik, S. 1993. Analysis of cyclic combinational circuits. In Proceedings of the IEEE/ACM International Conference on CAD (Santa Clara, CA). IEEE. 618--625. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Milner, R. 1989. Communication and Concurrency. Series in Computer Science. Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Plotkin, G. 1981. A structural approach to operational semantics. Rep. DAIMI FN-19, Aarhus University, Denmark.Google ScholarGoogle Scholar
  21. Potop-Butucaru, D. 2002. Optimizations for faster execution of Esterel programs. Ph.D. thesis, Ecole des Mines de Paris.Google ScholarGoogle Scholar
  22. Tardieu, O. 2004. 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
  23. Tardieu, O. and de Simone, R. 2003. Instantaneous termination in pure Esterel. In Proceedings of the 10th International Static Analysis Symposium (San Diego, CA). Lecture Notes in Computer Science, vol. 2694. Springer Verlag. 91--108. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A deterministic logical semantics for pure 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

        • Published in

          cover image ACM Transactions on Programming Languages and Systems
          ACM Transactions on Programming Languages and Systems  Volume 29, Issue 2
          April 2007
          327 pages
          ISSN:0164-0925
          EISSN:1558-4593
          DOI:10.1145/1216374
          Issue’s Table of Contents

          Copyright © 2007 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 April 2007
          Published in toplas Volume 29, Issue 2

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader