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.
- 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 Scholar
- André, C. 1996b. SyncCharts: a visual representation of reactive behaviors. Tech. Rep. RR 95-52, rev. RR 96-56, I3S, Sophia-Antipolis, France.]]Google Scholar
- 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 Scholar
- 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 Scholar
- Berry, G. 1999. The constructive semantics of pure Esterel. http://www-sop.inria.fr/esterel.org/.]]Google Scholar
- Berry, G. 2000a. The Esterel language primer v5_91. http://www-sop.inria.fr/esterel.org/.]]Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Berry, G. and Gonthier, G. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming 19, 2, 87--152.]] Google Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- Edwards, S. A. 2000. Languages for Digital Embedded Systems. Kluwer Academic Publ. Norwell, MA.]] Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- Halbwachs, N. 1992. Synchronous Programming of Reactive Systems. Kluwer Academic Publ. Norwell, MA.]] Google Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
- INRIA, ENSMP, and ARMINES. 2000. The Esterel v5_92 Compiler. http://www-sop.inria.fr/esterel.org/.]]Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- McMillan, K. 1993. Symbolic Model Checking. Kluwer Academic Publ. Norwell, MA.]] Google Scholar
Digital Library
- Mignard, F. 1994. Compilation du langage Esterel en systèmes d'équations booléen-nes. Ph.D. thesis, Ecole des Mines de Paris.]]Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Plotkin, G. 1981. A structural approach to operational semantics. Report DAIMI FN-19, Aarhus University, Denmark.]]Google Scholar
- Potop-Butucaru, D. 2002. Optimizations for faster execution of Esterel programs. Ph.D. thesis, Ecole des Mines de Paris.]]Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
Index Terms
Loops in esterel
Recommendations
A deterministic logical semantics for pure Esterel
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 ...
A refinement-based compiler development for synchronous languages
MEMOCODE '17: Proceedings of the 15th ACM-IEEE International Conference on Formal Methods and Models for System DesignIn this paper, we are concerned by the elaboration of generic development steps for the code generation for synchronous languages. Our aim is to provide a correct by construction solution. For that purpose, we adopt a refinement-based approach where ...
Affine-by-Statement Transformations of Imperfectly Nested Loops
IPPS '96: Proceedings of the 10th International Parallel Processing SymposiumA majority of loop restructuring techniques developed so far assume that loops are perfectly nested. The unimodular approach unifies three individual transformations -- loop interchange, skewing and reversal -- but is still limited to perfect loop ...






Comments