Compilation of the ELECTRE Reactive Language into Finite Transition Systems

Abstract We present in this paper an operational semantics for the ELECTRE reactive language (Roux et al., 1992). This language is based on an asynchronous approach to real-time systems. First basic concepts and intuitive semantics are introduced. Then we give rules to model dynamic semantics of ELECTRE programs: this constitutes an operational semantics for the ELECTRE language. This operational semantics is used to define a model of execution for ELECTRE programs: transition system. In addition, we prove, using structural induction on the operational semantics, that this transition system is a finite state transition system. Eventually, we extend the previous transition system so as to handle multiple-storage events: it is important since the asynchronous ELECTRE language deals with multiple memorized occurrences of the events. This result gives a means of compiling the ELECTRE language into a finite-state machine.

[1]  Rod M. Burstall,et al.  Proving Properties of Programs by Structural Induction , 1969, Comput. J..

[2]  Wieslaw Zielonka,et al.  Notes on Finite Asynchronous Automata , 1987, RAIRO Theor. Informatics Appl..

[3]  André Arnold,et al.  MEC: A System for Constructing and Analysis Transition Systems , 1990, AMAST.

[4]  Olivier F. Roux,et al.  Operational Semantics of a Kernel of the Language ELECTRE , 1992, Theor. Comput. Sci..

[5]  A. Arnold Systèmes de transitions finis et sémantique des processus communicants , 1990 .

[6]  Albert Benveniste,et al.  Signal-A data flow-oriented language for signal processing , 1986, IEEE Trans. Acoust. Speech Signal Process..

[7]  Gérard Berry,et al.  From Regular Expressions to Deterministic Automata , 1986, Theor. Comput. Sci..

[8]  Jonathan S. Ostroff,et al.  Automated Verification of Timed Transition Models , 1989, Automatic Verification Methods for Finite State Systems.

[9]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[10]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[11]  Didier Vergamini,et al.  Verification of distributed systems: an experiment , 1987, Formal Properties of Finite Automata and Applications.

[12]  Amir Pnueli,et al.  On the Development of Reactive Systems , 1989, Logics and Models of Concurrent Systems.

[13]  Joseph Sifakis,et al.  A temporal logic to deal with fairness in transition systems , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[14]  Paul Caspi,et al.  Programmation et vérification des systèmes réactifs : le langage LUSTRE , 1991 .

[15]  Bernard Vauquelin,et al.  Automates a File , 1980, Theor. Comput. Sci..

[16]  Thomas Sudkamp,et al.  Languages and Machines , 1988 .

[17]  Edmund M. Clarke Automatic Verification of Finite-state Concurrent Systems , 1994, Application and Theory of Petri Nets.

[18]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[19]  Janusz A. Brzozowski,et al.  Derivatives of Regular Expressions , 1964, JACM.

[20]  Alessandra Cherubini,et al.  QRT FIFO Automata, Breath-First Grammars and Their Relations , 1991, Theor. Comput. Sci..

[21]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[22]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[23]  Dana S. Scott,et al.  Logic and programming languages , 1977, CACM.