Instantaneous Termination in Pure Esterel

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.

[1]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[2]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[3]  Michel Poize,et al.  SAXO-RT: Interpreting Esterel Semantic on a Sequential Execution Structure , 2002, SLAP@ETAPS.

[4]  Horia Alexandru Toma Analyse constructive et optimisation séquentielle des circuits générés à partir du langage synchrone réactif ESTEREL , 1997 .

[5]  S. Edwards Compiling Esterel into sequential code , 2000, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[6]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[7]  HighWire Press Philosophical Transactions of the Royal Society of London , 1781, The London Medical Journal.

[8]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[9]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[10]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[11]  Nicolas Halbwachs,et al.  Delay Analysis in Synchronous Programs , 1993, CAV.

[12]  Gérard Berry,et al.  The constructive semantics of pure esterel , 1996 .

[13]  Gérard Berry,et al.  The Semantics of Pure Esterel , 1992, NATO ASI PDC.

[14]  Gérard Berry,et al.  Esterel on hardware , 1992, Philosophical Transactions of the Royal Society of London. Series A: Physical and Engineering Sciences.

[15]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[16]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[17]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[18]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[19]  Stephen A. Edwards,et al.  Languages for Digital Embedded Systems , 2000 .

[20]  Frederic Mignard Compilation du langage esterel en systemes d'equations booleennes , 1994 .

[21]  Georges Gonthier Sémantiques et modèles d'exécution des langages réactifs synchrones : application à Esterel , 1988 .