Formally Unifying Modeling and Design for Embedded Systems - A Personal View

  • G. BerryEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9953)


Based on the author’s academic and industrial experience, we discuss the smooth relation between model-based design and programming realized by synchronous languages in the embedded systems field. These languages are used to develop high quality embedded software, in particular for safety-critical applications in avionics, railway, etc., subject to the strongest software certification processes in industry. They have also been used for the efficient model-based development of production hardware circuits. One of their main characteristics is their well-defined formal semantics, with is the base of their simulation and compiling processes and is also fundamental for their link to automatic formal verification systems and other tools related to model-based design. We briefly discuss their current limitations and some ideas to lift them.


Embed System Formal Verification Discrete Control Register Transfer Level Synchronous Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
  2. 2.
    Abrial, J.R.: The B-book: Assigning Programs to Meanings. Cambridge University Press, New York (1996)CrossRefzbMATHGoogle Scholar
  3. 3.
    Abrial, J.R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, New York (2013)zbMATHGoogle Scholar
  4. 4.
    André, C.: Representation, analysis of reactive behaviors: a synchronous approach. In: Proceedings of CESA 1996, IEEE-SMC, Lille, France (1996)Google Scholar
  5. 5.
    Arditi, L., Berry, G., Kishinevsky, M.: Late design changes (ECOs) for sequentially optimized Esterel designs. In: Proceedings of Formal Methods in Computer Aided Design, FMCAD 2004, Austin, Texas (2004)Google Scholar
  6. 6.
    Arditi, L., Berry, G., Kishinevsky, M., Perreaut, M.: Clocking schemes in Esterel. In: Proceedings of Designing Correct Circuits, DCC 2006, Vienna, Austria (2006)Google Scholar
  7. 7.
    Balarin, F., Chiodo, M., Jurecska, A., Hsieh, H., Lavagno, A.L., Passerone, C., Sangiovanni-Vincentelli, A., Sentovich, E., Suzuki, K., Tabbara, B.: Hardware-Software Co-Design of Embedded Systems: The Polis Approach. Kluwer Academic Press (1997)Google Scholar
  8. 8.
    Benveniste, A., Bourke, T., Caillaud, B., Pouzet, M.: Non-standard semantics of hybrid systems modelers. J. Comput. Syst. Sci. (JCSS) 78(3), 877–910 (2012). Special issue in honor of Amir PnueliGoogle Scholar
  9. 9.
    Benveniste, A., Caspi, P., Edwards, S., Halbwachs, N., Le Guernic, P., de Simone, R.: The synchronous languages 12 years later. Proc. IEEE 91(1), 64–83 (2003)CrossRefGoogle Scholar
  10. 10.
    Bergerand, J.L., Pilaud, E., Saga,: a software development environment for dependability in automatic control. In: Proceedings of Safecomp 1988. Pergamon Press (1988)Google Scholar
  11. 11.
    Berry, G.: A hardware implementation of pure Esterel. Sadhana Acad. Proc. Eng. Sci. Indian Acad. Sci. 17(1), 95–130 (1992)Google Scholar
  12. 12.
    Berry, G.: The foundations of Esterel. In: Proof, Language and Interaction Essays in Honour of Robin Milner. MIT Press (2000)Google Scholar
  13. 13.
    Berry, G.: The Constructive Semantics of Pure Esterel. Draft book version 3 (without proofs) (2002).
  14. 14.
    Berry, G., Benveniste, A.: The synchronous approach to reactive and real-time systems. Another Look Real Time Programm. Proc. IEEE 79, 1270–1282 (1991)Google Scholar
  15. 15.
    Berry, G., Bouali, A., Fornari, X., Nassor, E., Ledinot, E., de Simone, R.: Esterel: a formal method applied to avionic development. Sci. Comput. Program. 36, 5–25 (2000)CrossRefGoogle Scholar
  16. 16.
    Berry, G., Cosserat, L.: The ESTEREL synchronous programming language and its mathematical semantics. In: Brookes, S.D., Roscoe, A.W., Winskel, G. (eds.) CONCURRENCY 1984. LNCS, vol. 197, pp. 389–448. Springer, Heidelberg (1985). doi: 10.1007/3-540-15670-4_19 CrossRefGoogle Scholar
  17. 17.
    Berry, G., Gonthier, G.: The Esterel synchronous programming language: design, semantics, implementation. Sci. Comput. Program. 19(2), 87–152 (1992)CrossRefzbMATHGoogle Scholar
  18. 18.
    Berry, G., Kishinevsky, M., Singh, S.: System level design and verification using a synchronous language. In: Proceedings of International Conference on Integrated Circuit Design, ICCAD 2003, San Jose, USA (2004)Google Scholar
  19. 19.
    Berry, G., Moisan, S., Rigault, J.-P.: Towards a synchronous and semantically sound high level language for real-time applications. In: IEEE Real Time Systems Symposium, pp. 30–40 (1983). IEEE Catalog 83 CH 1941–4Google Scholar
  20. 20.
    Berry, G., Serrano, M., Hop, H.: Multitier web orchestration. In: Proceedings of the ICDCIT 2014 Conference, pp. 1–13 (2014)Google Scholar
  21. 21.
    Bertin, P., Roncin, D., Vuillemin, J.: Programmable active memories: a performance assessment. In: Borriello, G., Ebeling, C. (eds.) Research on Integrated Systems: Proceedings of the 1993 Symposium, pp. 88–102 (1993)Google Scholar
  22. 22.
    Bertot, Y., Casteran, P.: Interactive Theorem Proving and Program Development- Coq’Art: The Calculus of Inductive Constructions. Springer (2004)Google Scholar
  23. 23.
    Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: PLDI 2003 ACM SIGPLAN SIGSOFT Conference on Programming Language Design and Implementation, San Diego, California, USA, pp. 196–207 (2003)Google Scholar
  24. 24.
    Bouali, A.: Xeve: an Esterel verification environment. In: Proceedings of Computer Aided Verification, CAV 1998, Vancouver, Canada (1998)Google Scholar
  25. 25.
    Bourke, T., Colaço, J.-L., Pagano, B., Pasteur, C., Pouzet, M.: A synchronous-based code generator for explicit hybrid systems languages. In: Franke, B. (ed.) CC 2015. LNCS, vol. 9031, pp. 69–88. Springer, Heidelberg (2015). doi: 10.1007/978-3-662-46663-6_4 CrossRefGoogle Scholar
  26. 26.
    Boussinot, F., Reactive, C.: An extension of C to program reactive systems. Softw. Pract. Exp. 21(4), 401–428 (1991)CrossRefGoogle Scholar
  27. 27.
    Boussinot, F., de Simone, R.: The Esterel language. Another Look Real Time Programm. Proc. IEEE 79, 1293–1304 (1991)Google Scholar
  28. 28.
    Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput. 35(8), 677–691 (1986)CrossRefzbMATHGoogle Scholar
  29. 29.
    Colaço, J.-L., Pagano, B., Pouzet, M.: A conservative extension of synchronous data-flow with state machines. In: Proceedings of Emsoft 2005, New Jersey, USA (2005)Google Scholar
  30. 30.
    Colaço, J.-L., Girault, A., Hamon, G., Pouzet, M.: Towards a higher-order synchronous data-flow language. In :ACM Fourth International Conference on Embedded Software, EMSOFT 2004, Pisa, Italy, September 2004Google Scholar
  31. 31.
    Cont, A.: A coupled duration-focused architecture for real-time music-to-score alignment. IEEE Trans. Pattern Anal. Mach. Intell. 32, 974–987 (2010)CrossRefGoogle Scholar
  32. 32.
    Echeveste, J., Cont, A., Giavitto, J.-L., Jacquemard, F.: Operational semantics of a domain specific language for real time musician-computer interaction. Discrete Event Dyn. Syst. 23(4), 343–383 (2013)CrossRefGoogle Scholar
  33. 33.
    Edwards, S.: An Esterel compiler for large control-dominated systems. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2(2), 169–183 (2002)CrossRefGoogle Scholar
  34. 34.
    Espiau, B., Coste-Manière, E.: A synchronous approach for control sequencing in robotics applications, pp. 503–508. In: Proceedings of IEEE International Workshop on Intelligent Motion, Istambul (1990)Google Scholar
  35. 35.
    De Moura, L., Bjrner, N.: Satisfiability modulo theories: introduction and applications. Comm. ACM 54(9), 69–77 (2011)CrossRefGoogle Scholar
  36. 36.
    Le Guernic, P., Le Borgne, M., Gauthier, T., Le Maire, C.: Programming real time applications with Signal. Another Look Real Time Programm. Proc. IEEE 79, 1270–1282 (1991). Special IssueCrossRefGoogle Scholar
  37. 37.
    Halbwachs, N.: Synchronous Programming of Reactive Systems. Kluwer, Dordrecht (1993)CrossRefzbMATHGoogle Scholar
  38. 38.
    Halbwachs, N., Caspi, P., Pilaud, D.: The synchronous dataflow programming language Lustre. Another Look Real Time Programm. Proc. IEEE 79, 1270–1282 (1991). Special IssueCrossRefGoogle Scholar
  39. 39.
    Harel, D.: Statecharts: a visual approach to complex systems. Sci. Comput. Program. 8, 231–274 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  40. 40.
    Iman, S., Joshi, S.: The e-Hardware Verification Language. Springer, Heidelberg (2004)zbMATHGoogle Scholar
  41. 41.
    Jagadeesan, L., Von Olnhausen, J., Puchol, C.: A formal approach to reactive system software: a telecommunications application in Esterel. J. Formal Methods Syst. Des. 8(2), 132–145 (1996)Google Scholar
  42. 42.
    Knuth, D.: The Art of Computer Programming, Vol. 4: Combinatorial Algorithms, Section 7.1.4: Binary Decision Diagrams. Addison Wesley, Reading (2014)Google Scholar
  43. 43.
    Knuth, D.: The Art of Computer Programming, vol. 4B, Satisfiability. Addison Wesley, Reading (2016)Google Scholar
  44. 44.
    Kroening, D., Strichman, O.: Decision Procedures An Algorithmic Point of View. Springer (2008)Google Scholar
  45. 45.
    Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  46. 46.
    Malik, S.: Analysis of cyclic combinational circuits. IEEE Trans. Comput. Aided Des. 13(7), 950–956 (1994)CrossRefzbMATHGoogle Scholar
  47. 47.
    Mandel, L., Pouzet, M.: ReactiveML, a reactive extension to ML. In: Proceedings of Principles and Practice of Declarative Programming, PPDP 2005, Lisbon (2005)Google Scholar
  48. 48.
    Maraninchi, F., Rémond, Y.: Mode automata: a new domain-specific construct for the development of safe critical systems. Sci. Comput. Programm. 46(3), 219–254 (2003)CrossRefzbMATHGoogle Scholar
  49. 49.
    Mendler, M., Shiple, T., Berry, G.: Constructive Boolean circuits and the exactness of timed ternary simulation. Formal Methods Syst. Des. 40(3), 283–329 (2012)CrossRefzbMATHGoogle Scholar
  50. 50.
    Murakami, G., Sethi, R.: Terminal call processing in Esterel. In: Proceedings of IFIP 92 World Computer Congress, Madrid, Spain (1992)Google Scholar
  51. 51.
    Potop-Butucaru, D., Edwards, S.A., Berry, G.: Compiling Esterel. Springer, Heidelberg (2007)Google Scholar
  52. 52.
    Pouzet, M.: Building a hybrid systems modeler on synchronous languages principles. In: Proceedings of ACM International Conference on Embedded Software (EMSOFT), Amsterdam (2015)Google Scholar
  53. 53.
    Roy, V., de Simone, R.: Auto and autograph. In: Kurshan, R. (ed.) Proceedings of Workshop on Computer Aided Verification, New-Brunswick, June 1990Google Scholar
  54. 54.
    Schneider, K.: Embedding imperative synchronous languages in interactive theorem provers. In: Proceedings of Conference on Application of Concurrency to System Design (ACSD) (2001)Google Scholar
  55. 55.
    Sentovich, E., Toma, H., Berry, G.: Latch optimization in circuits generated from high-level descriptions. In: Proceedings of International Conference on Computer-Aided Design (ICCAD) (1996)Google Scholar
  56. 56.
    Sentovich, E., Toma, H., Berry, G.: Efficient latch optimization using exclusive sets. In: Proceedings of Digital Automation Conference (DAC) (1997)Google Scholar
  57. 57.
    Serrano, M., Berry, G.: Multitier programming in Hop - a first step toward programming 21st-century applications. Commun. ACM 55(8), 53–59 (2012)CrossRefGoogle Scholar
  58. 58.
    Serrano, M., Prunet, V.: A glimpse of Hopjs. In: 21th Sigplan International Conference on Functional Programming (ICFP), Nara, Japan (2016)Google Scholar
  59. 59.
    Shiple, T., Berry, G., Touati, H.: Constructive analysis of cyclic circuits. In: Proceedings of International Design and Testing Conf (ITDC), Paris (1996)Google Scholar
  60. 60.
    Touati, H., Berry, G.: Optimized controller synthesis using Esterel. In: Proceedings of International Workshop on Logic Synthesis IWLS 1993, Lake Tahoe (1993)Google Scholar
  61. 61.
    von Hanxleden, R., Duderstadt, B., Motika, C., Smyth, S., Mendler, M., Aguado, J., Mercer, S., OBrien, O.: SCCharts: Sequentially constructive statecharts for safety-critical applications. In: Proceedings ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI14), Edinburgh, UK, (2014)Google Scholar
  62. 62.
    von Hanxleden, R., Mendler, M., Aguado, J., Duderstadt, B., Fuhrmann, I., Motika, C., Mercer, S., O’Brien, O.: Sequentially constructive concurrency - a conservative extension of the synchronous model of computation. In: Proceedings of Design, Automation and Test in Europe Conference, DATE 2013, Grenoble, France (2013)Google Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  1. 1.Collège de FranceParisFrance

Personalised recommendations