Access the full text.
Sign up today, get DeepDyve free for 14 days.
G. Berry (2000)
The foundations of Esterel
Sylvain Boulmé, Grégoire Hamon (2001)
Certifying Synchrony for Free
H. Barendregt (1985)
The Lambda Calculus: Its Syntax and Semantics
D. Gladstein, M. Wand (1996)
Compiler Correctness for Concurrent Languages
K. Schneider (2001)
Embedding imperative synchronous languages in interactive theorem proversProceedings Second International Conference on Application of Concurrency to System Design
E. Sentovich, Horia Toma, G. Berry (1996)
Latch optimization in circuits generated from high-level descriptionsProceedings of International Conference on Computer Aided Design
F. Mignard (1994)
Compilation du langage esterel en systemes d'equations booleennes
M. Gordon, T. Melham (1993)
Introduction to HOL: a theorem proving environment for higher order logic
D. Harel (1987)
Statecharts: A Visual Formalism for Complex SystemsSci. Comput. Program., 8
F. Boussinot, R. Simone (1996)
The SL Synchronous LanguageIEEE Trans. Software Eng., 22
R. Milner (1989)
Communication and concurrency
Mickaël Kerboeuf, David Nowak, J. Talpin (2000)
Specification and Verification of a Steam-Boiler with Signal-Coq
F. Boussinot, R. Simone (1991)
The ESTEREL languageProc. IEEE, 79
Edmund Clarke, Kenneth McMillan, S. Campos, Vasiliki Hartonas-Garmhausen (1993)
Symbolic Model Checking
G. Berry, Georges Gonthier (1992)
The Esterel Synchronous Programming Language: Design, Semantics, ImplementationSci. Comput. Program., 19
A. Aho, Ravi Sethi, J. Ullman (1986)
Compilers: Principles, Techniques, and Tools
K. Schneider, Michael Wenz (2001)
A new method for compiling schizophrenic synchronous programs
J. McCarthy, James Painter (1966)
Correctness of a compiler for arithmetic expressions
O. Tardieu, R. Simone (2003)
Instantaneous Termination in Pure Esterel
T. Grandpierre, C. Lavarenne, Y. Sorel (1999)
Optimized rapid prototyping for real-time embedded heterogeneous multiprocessorsProceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450)
Yves Bertot (1990)
Implementation of an Interpreter for a Parallel Language in Centaur
(2005)
ACM Transactions on Embedded Computing Systems Loops in Esterel @BULLET
D. Potop-Butucaru, R. Simone (2003)
Optimizations for faster execution of Esterel programsFirst ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2003. MEMOCODE '03. Proceedings.
B. Douglass (1997)
Real-time UML (2nd ed.): developing efficient objects for embedded systems
F. Maraninchi (2007)
The Argos Language: Graphical Representation of Automata and Description of Reactive Systems
B. Selić (1998)
Using UML for Modeling Complex Real-Time Systems
D. Dill (1994)
Proceedings of the 6th International Conference on Computer Aided Verification
N. Halbwachs (1992)
Synchronous Programming of Reactive Systems
K. Schneider, J. Brandt, T. Schüle (2006)
A Verified Compiler for Synchronous Programs with Local Declarations
G. Kahn (1987)
Natural Semantics
C. André (1995)
Synccharts: A visual representation of reactive behaviors
S. Bensalem, P. Caspi, C. Parent-Vigouroux, C. Dumas (1999)
A methodology for proving control systems with Lustre and PVSDependable Computing for Critical Applications 7
GOTOPAUSE 6. REWRITING CORRECT LOOPS REFERENCES
N. Halbwachs, Fabienne Lagnier, C. Ratel (1992)
Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTREIEEE Trans. Software Eng., 18
A. Bouali (1998)
XEVE, an ESTEREL Verification Environment
David Nowak (1999)
Spécification et preuve de systèmes réactifs
A. Poigné, M. Morley, Olivier Maffeïs, L. Holenderski, R. Budde (1998)
The Synchronous Approach to Designing Reactive SystemsFormal Methods in System Design, 12
T. Shiple, G. Berry, H. Touati (1996)
Constructive analysis of cyclic circuitsProceedings ED&TC European Design and Test Conference
E. Closse, M. Poize, J. Pulou, P. Venier, D. Weil (2002)
SAXO-RT: Interpreting Esterel Semantic on a Sequential Execution Structure
P. Guernic, T. Gautier, M. Borgne, C. Maire (1991)
Programming real-time applications with SIGNALProc. IEEE, 79
D. Clément, J. Incerpi (1989)
Specifying the Behavior of Graphical Objects Using Esterel
A. Pnueli, O. Strichman, M. Siegel (1998)
The Code Validation Tool (CVT)International Journal on Software Tools for Technology Transfer, 2
G. Berry (1996)
The constructive semantics of pure esterel
D. Chapiro (1985)
Globally-asynchronous locally-synchronous systems (performance, reliability, digital)
Stephen Edwards (2000)
Languages for Digital Embedded Systems
O. Tardieu, R. Simone (2004)
Curing schizophrenia by program rewriting in EsterelProceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04.
David Nowak, Jean-René Beauvais, J. Talpin (1998)
Co-inductive Axiomatization of a Synchronous Language
P. Cousot, R. Cousot (1977)
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpointsProceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A. Lanusse, S. Gérard, F. Terrier (1998)
Real-Time Modeling with UML: The ACCORD Approach
K. Schneider (2000)
A Verified Hardware Synthesis of Esterel Programs
Kedar Namjoshi, R. Kurshan (1999)
Efficient Analysis of Cyclic Definitions
D. Park (1981)
Concurrency and Automata on Infinite Sequences
E. Dijkstra (2002)
Go to Statement Considered Harmful (Reprint)
G. Berry, Laurent Cosserat (1984)
The ESTEREL Synchronous Programming Language and its Mathematical Semantics
O. Tardieu (2006)
Goto and Concurrency Introducing Safe Jumps in Esterel
J. Groote (1990)
Transition System Specifications with Negative Premises (Extended Abstract)
P. Borras, D. Clément, T. Despeyroux, J. Incerpi, G. Kahn, B. Lang, V. Pascual (1988)
Centaur: the systemProceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
(2004)
Received April
M. Dave (2003)
Compiler verification: a bibliographyACM SIGSOFT Softw. Eng. Notes, 28
A. Pnueli, M. Siegel, Eli Singerman (1998)
Translation Validation
C. André (2000)
Representation and Analysis of Reactive Behaviors: A Synchronous Approach
O. Tardieu (2007)
A deterministic logical semantics for pure EsterelACM Trans. Program. Lang. Syst., 29
H. Marchand, É. Rutten, M. Borgne, M. Samaan (2001)
Formal verification of programs specified with signal: application to a power transformer station controllerSci. Comput. Program., 41
S. Malik (1993)
Analysis of cyclic combinational circuitsProceedings of 1993 International Conference on Computer Aided Design (ICCAD)
G. Plotkin (2004)
A structural approach to operational semanticsJ. Log. Algebraic Methods Program., 60-61
A. Pnueli, O. Strichman, M. Siegel (1999)
Translation Validation: From SIGNAL to C
Simone 2.2 Logical Behavioral Semantics 2.3 Logical Correctness 3. REJECTING INCORRECT LOOPS
R. Brayton, G. Hachtel, A. Sangiovanni-Vincentelli, F. Somenzi, A. Aziz, Szu-Tsung Cheng, Stephen Edwards, S. Khatri, Y. Kukimoto, Abelardo Pardo, S. Qadeer, R. Ranjan, Shaker Sarwary, T. Shiple, G. Swamy, T. Villa (1996)
VIS: A System for Verification and Synthesis
(2004)
ACM Journal Name
O. Tardieu (2004)
Loops in Esterel: From Operational Semantics to Formally Specified Compilers
J. Palsberg (1992)
A Provably Correct Compiler Generator
Georges Gonthier (1988)
Sémantiques et modèles d'exécution des langages réactifs synchrones : application à Esterel
N. Halbwachs, P. Caspi, Pascal Raymond, D. Pilaud (1991)
The synchronous data flow programming language LUSTREProc. IEEE, 79
Fr.-Xavier Fornari (1995)
Optimisation du controle et implantation en circuits de programmes esterel
A. Benveniste, P. Caspi, Stephen Edwards, N. Halbwachs, R. Simone (1997)
The Synchronous Languages Twelve Years LaterProceedings of the IEEE
Stephen Edwards, Vimal Kapadia, Michael Halasz (2006)
Compiling Esterel into Static Discrete-Event Code
A. Benveniste, P. Caspi, Stephen Edwards, N. Halbwachs, P. Guernic, R. Simone (2003)
The synchronous languages 12 years laterProc. IEEE, 91
L. Morel (2002)
Efficient Compilation of Array Iterators for Lustre
S. Stepney (1993)
High integrity compilation - a case study
Month 20YY. Loops in Esterel · 41
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.
ACM Transactions on Embedded Computing Systems (TECS) – Association for Computing Machinery
Published: Nov 1, 2005
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.