I The Esterel Language.
1 Introduction to Esterel. 1.1 Reactive Systems. 1.2 The Synchronous Hypothesis. 1.3 Implementation Issues. 1.4 Causality. 1.5 Related work. 1.6 A First Esterel Example. 1.7 Causality Cycles 1.8 Code Generation. 1.9 Executing the Generated Code.
2 The Esterel Language. 2.1 Syntax and Naïve Semantic Principles. 2.2 The Kernel Esterel Language. 2.3 Esterel Through Examples. 2.4 Host Language. 2.5 Program Structure and Interface.
II Formal Semantics.
3. Introduction to Esterel Semantics. 3.1 Intuition and Mathematical Foundations. 3.2 Flavors of Constructive Semantics. 3.3 Conventions and Preliminary Definitions.
4 Constructive Behavioral Semantics. 4.1 Behavioral Transitions. 4.2 Analysis of Potentials. 4.3 Semantic Rules. 4.4 Proof . 4.5 Determinism. 4.6 Loop-Safe Programs. Completion Code Potentials. 4.7 Program Behavior.
5 Constructive Operational Semantics. 5.1 Microsteps. 5.2 COS Terms. 5.3 Data Representation. 5.4 Semantic Rules. 5.5 Analysis of Potentials. 5.6 Behaviors as Sequences of Microsteps. 5.7 COS versus CBS.
6 Constructive Circuit Translation. 6.1 Digital Circuits with Data. 6.2 Translation Principles. 6.3 Translation Rules. 6.4 Circuit Translation versus COS.
III Compiling Esterel
7 Overview. 7.1 Compiler Classes. 7.2 A Brief History. 7.3 The INRIA Compiler. 7.4 The Synopsys Compiler. 7.5 The Saxo-RT Compiler. 7.6 The Columbia Esterel Compiler.
8 The GRC Intermediate Format. 8.1 Definition and Intuitive Semantics. 8.2 Esterel to GRC Translation. 8.3 Formal Simulation Semantics and Translation Correctness. 8.4 Format Optimizations.
9 Code Generation from GRC. 9.1 Defining "Acyclic". 9.2 Code Generation for Acyclic Specifications. 9.3 Code Generation for Cyclic Specifications. 9.4 Benchmarks.
10 The Columbia Compiler. 10.1 The Dynamic Technique. 10.2 The Program Dependence Graph Approach. 10.3 Benchmarks.
A Language Extensions. A.1 Signal Expressions. A.2 Traps and Trap Expressions. A.3 The finalize Statement. A.4 Tasks.
B An Esterel Reference Manual. B.1 Lexical Conventions. B.2 Namespaces and Predefined Objects. B.3 Expressions. B.4 Statements. B.5 Modules.
C The C Language Interface. C.1 Overview. C.2 C Code for Data Handling. C.3 The Reaction Interface. C.4 Task Handling.
D Esterel V7. D.1 Data Support. D.2 Signals. D.3 Interfaces. D.4 Statements. D.5 Multiclock Design.
Designed as the definitive reference on the compilation of the Esterel synchronous reactive real-time language, Compiling Esterel covers all aspects of the language. The book includes a tutorial, a reference manual, formal semantics, and detailed technical information about the many techniques used to compile it. Researchers as well as advanced developers will find this book essential for understanding Esterel at all levels.
This is the only book devoted completely to Esterel
The authors are the people most experienced with Esterel, period. The third author (Berry) designed the language. The first author (Potop) completed his PhD under Berry and has produced the best known Esterel compiler. The second author (Edwards) has been developing Esterel compilers for the last decade
The information in the book has largely existed for a while, but in scattered papers and in the minds of the developers
Collects all this information, condenses it, and makes it consistent
The language has grown mature; this book is a definitive discussion of it