Skip to main content
Log in

The Synchronous Approach to Designing Reactive Systems

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

Synchronous programming is available through several formally defined languages having very different characteristics: Esterel is imperative, while Lustre and Signal are declarative in style; Statecharts and Argos are graphical languages that allow one to program by constructing hierarchical automata. Our motivation for taking the synchronous design paradigm further, integrating imperative, declarative (or dataflow), and graphical programming styles, is that real systems typically have components that match each of these profiles. This paper motivates our interest in the mixed language programming of embedded software around a number of examples, and sketches the semantical foundation of the Synchronie toolset which ensures a coherent computational model. This toolset supports a design trajectory that incorporates rapid prototyping and systematic testing for early design validation, an object oriented development methodology for long term software management, and formal verification at the level of automatically generated object code.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. A. Benveniste. Synchron: a project proposal. ERCIM News, 12:26, January 1993.

  2. A. Benveniste. Synchronous languages provide safety in reactive system design. Control Engineering, 9:87–89, September 1994.

  3. G. Berry. Preemption in concurrent systems. In R. K. Shyamasundar, editor, Proceedings of Foundations of Software Technology and Theoretical Computer Science, volume 761 of Lecture Notes in Computer Science, pages 72–93. Springer-Verlag, December 1993.

  4. G. Berry and G. Gonthier. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming, 19:87–152, 1992.

    Article  Google Scholar 

  5. R. K. Brayton et al. BLIF-MV: An interchange format for design verification and synthesis. Technical Report UCB/ERL M91/97, University of California, 1991.

  6. R. K. Brayton et al. VIS: A system for verification and synthesis. In Proceedings of the 8th International Conference on Computer Aided Verification, volume 1102 of Lecture Notes in Computer Science. Springer-Verlag, pages 428–432, 1996.

  7. R. Budde and K.-H. Sylla. Eingebettete Echtzeitsysteme. Objekt-Spektrum, 4:10–16, April 1995.

  8. R. Budde and K.-H. Sylla. Objekt-orientierte Echtzeitanwendungen auf Grundlage perfekter Synchronisation. Objekt-Spektrum, 2:54–60, February 1995.

  9. E. M. Clarke and E. A. Emerson. Design and verification of synchronizing skeletons using branching time temporal logic. In Logics of Programs Workshop, volume 131 of Lecture Notes in Computer Science. Springer-Verlag, pages 52–71, 1981.

  10. The common formats of synchronous languages: The declarative code DC. Deliverable of the Eureka Synchron project, October 1995. Available by ftp at ftp.imag.fr, pub/SPECTRE/LUSTRE/DC.tar.gz.

  11. D. D. Gajski, F. Vahid, S. Narayan, and J. Gong. Specification and Design of Embedded Systems. Prentice-Hall, 1994.

  12. N. Halbwachs. Synchronous Programming of Reactive Systems. Kluwer Academic Publishers, Dordrecht, 1993.

    Google Scholar 

  13. N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous data flow programming language Lustre. Proceedings of the IEEE, 79:1305–1321, September 1991.

  14. N. Halbwachs, F. Lagnier, and C. Ratel. Programming and verifying real-time systems by means of the synchronous data-flow language Lustre. IEEE Transactions on Software Engineering, 18:785–793, 1992.

    Article  Google Scholar 

  15. D. Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8:231–274, June 1987.

  16. P. Hilfinger. A high-level language and silicon compiler for digital signal processing. In Proceedings of the Custom Integrated Circuits Conference, pages 213–216, May 1985.

  17. L. Holenderski. Production cell in Lustre. In Formal Development of Reactive Systems [23].

  18. Software for computers in the application of industrial safety-related systems. IEC Standard 1131, Part 3. International Electrotechnical Commission, 1994..

  19. L. J. Jagadeesan, C. Puchol, and J. E. von Olnhausen. A formal approach to reactive systems software: A telecommunications application in Esterel. Formal Methods in System Design, 8:123–151, March 1996.

  20. M. Jourdan, F. Lagnier, F. Maraninchi, and P. Raymond. A multiparadigm language for reactive systems. In IEEE International Conference on Computer Languages (ICCL-V), Toulouse, France. IEEE Computer Society Press, 1994.

  21. D. Lanneer, S. Note, et al. Architectural synthesis for medium and high throughput processing with the New Cathedral environment. In R. Camposano and W. Wolf, editors, High-Level VLSI Synthesis. Kluwer Academic Publishers, Boston/Dordrecht/London, 1991.

    Google Scholar 

  22. P. Le Guernic, T. Gautier, M. Le Borgne, and C. Le Maire. Programming real-time applications with Signal. Proceedings of the IEEE, 79:1321–1336, September 1991.

    Article  Google Scholar 

  23. C. Lewerentz and T. Linder. Formal Development of Reactive Systems, volume 891 of Lecture Notes in Computer Science. Springer-Verlag, 1995.

  24. O. Maffeïis and A. Poigné. Synchronous automata for reactive, real-time and embedded systems. Arbeitspapiere der GMD 967, Forschungszentrum Informationstechnik GmbH, January 1996.

  25. S. Malik. Analysis of cyclic combinational circuits. IEEE Transactions on Computer-Aided Design of Integrated Circuits, 13:950–956, 1994.

    Article  Google Scholar 

  26. F. Maraninchi. Operational and compositional semantics of synchronous automaton compositions. In Proceedings of CONCUR, volume 630 of Lecture Notes in Computer Science. August 1992.

  27. F. Maraninchi and N. Halbwachs. Compiling argos into boolean equations. In Formal Techniques for Real-Time and Fault-Tolerant Systems (FTRTFT'96), volume 1135 of Lecture Notes in Computer Science. Springer-Verlag, 1996.

  28. K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, Boston, MA, 1993.

    Google Scholar 

  29. R. Milner. Interpreting one concurrent calculus in another. Theoretical Computer Science, 75:3–13, 1990.

    Article  Google Scholar 

  30. M. Müllerburg. Systematic testing: a means for validating reactive systems. Software Testing, Verification and Reliability, 163–197, 1995.

  31. M. Müllerburg et al. Systematic testing and formal verification to validate reactive systems. Software Quality Journal, 4:287–307, December 1995.

  32. A. V. Oppenheim and R. W. Schafer. Discrete-Time Signal Processing. Prentice Hall, Eaglewood Cliffs, 1989.

    Google Scholar 

  33. A. Poigné. Specification of complex systems. ERCIM News, 16:33, February 1994. For up to date information

  34. A. Poigné and L. Holenderski. Boolean automata for implementing Esterel. Arbeitspapiere der GMD 964, Forschungszentrum Informationstechnik GmbH, December 1995.

  35. T. R. Shiple, G. Berry, and H. Toutai. Constructive analysis of cyclic circuits. In Proceedings of the European Design and Testing Conference, IEEE Computer Society, pages 328–333 Mar. 1996.

  36. G. Stålmarck and M. Säflund. Modelling and verifying systems and software in propositional logic. In Proceedings of SAFECOMP'90. IFAC, Pergamon Press, pages 31–6, 1990.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Poigné, A., Morley, M., Maffeïs, O. et al. The Synchronous Approach to Designing Reactive Systems. Formal Methods in System Design 12, 163–187 (1998). https://doi.org/10.1023/A:1008697810328

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008697810328

Navigation