Discrete Event Dynamic Systems

, Volume 23, Issue 4, pp 385–418 | Cite as

Integrating discrete controller synthesis into a reactive programming language compiler

  • Gwenaël Delaval
  • Eric Rutten
  • Hervé Marchand


We define a mixed imperative/declarative programming language: declarative contracts are enforced upon imperatively described behaviors. This paper describes the semantics of the language, making use of the notion of Discrete Controller Synthesis (DCS). We target the application domain of adaptive and reconfigurable systems: our language can serve programming closed-loop adaptation controllers, enabling flexible execution of functionalities w.r.t. changing resource and environment conditions. DCS is integrated into a1 programming language compiler, which facilitates its use by users and programmers, performing executable code generation. The tool is concretely built upon the basis of a reactive programming language compiler, where the nodes describe behaviors that can be modeled in terms of transition systems. Our compiler integrates this with a DCS tool, making it a new environment for formal methods. We define the trace semantics of our contracts language, describe its compilation and establish its correctness, and discuss implementation and examples.


Reactive systems Synchronous programming Discrete control synthesis Compilation Behavioral contracts Adaptive/reconfigurable systems 


  1. Aboubekr S, Delaval G, Pissard-Gibollet R, Rutten E, Simon D (2011) Automatic generation of discrete handlers of real-time continuous control tasks. In: Proc. 18th World congress of the international federation of automatic control (IFAC). Milano, Italy, pp 786–793Google Scholar
  2. Altisen K, Clodic A, Maraninchi F, Rutten E (2003) Using controller synthesis to build property-enforcing layers. In: European symposium on programming. LNCS, vol 2618. Warsaw, Poland, pp 126–141Google Scholar
  3. Auer A, Dingel J, Rudie K (2009) Concurrency control generation for dynamic threads using discrete-event systems. In: 47th Annual allerton conference on communication, control, and computing, 2009. Allerton 2009, pp 927–934Google Scholar
  4. Benveniste A, Caspi P, Edwards S, Halbwachs N, Le Guernic P, de Simone R (2003) The synchronous languages twelve years later. Proc IEEE 91(1):64–83CrossRefGoogle Scholar
  5. Benveniste A, Caillaud B, Passerone R (2007) A generic model of contracts for embedded systems. Res. Rep. RR-6214, INRIAGoogle Scholar
  6. Bodik R, Chandra S, Galenson J, Kimelman D, Tung N, Barman S, Rodarmor C (2010) Programming with angelic nondeterminism. In: Principles of programming languages, POPL, pp 339–352Google Scholar
  7. Bouhadiba T, Sabah Q, Delaval G, Rutten E (2011) Synchronous control of reconfiguration in fractal component-based systems—a case study. In: Int. conf. on embedded software. EMSOFT 2011. Taipei, Taiwan, pp 309–318Google Scholar
  8. Cassandras C, Lafortune S (2007) Introduction to discrete event systems. SpringerGoogle Scholar
  9. Cassez F, David A, Fleury E, Larsen K, Lime D (2005) Efficient on-the-fly algorithms for the analysis of timed games. In: Conf. on concurrency theory (CONCUR). LNCS, vol 3653, pp 66–80Google Scholar
  10. Chakrabarti A, de Alfaro L, Henzinger TA, Mang FYC (2002) Synchronous and bidirectional component interfaces. In: Computer aided verification. LNCS, vol 2404. Copenhagen, Denmark, pp 414–427Google Scholar
  11. Colaço J-L, Pagano B, Pouzet M (2005) A conservative extension of synchronous data-flow with state machines. In: Embedded software (EMSOFT). New Jersey, USA, pp 173–182Google Scholar
  12. Delaval G, Rutten E (2010) Reactive model-based control of reconfiguration in the fractal component-based model. In: Component based software engineering. LNCS, vol 6092. Prague, Czech R., pp 93–112Google Scholar
  13. Delaval G, Marchand H, Rutten E (2010) Contracts for modular discrete controller synthesis. In: Languages, compilers and tools for embedded systems. Stockholm, Sweden, pp 57–66Google Scholar
  14. deQueiroz MH, Cury JER (2002) Synthesis and implementation of local modular supervisory control for a manufacturing cell. In: Proceedings of the 6th international workshop on discrete event systems, pp 377–382Google Scholar
  15. Dragert C, Dingel J, Rudie K (2008) Generation of concurrency control code using discrete-event systems theory. In: Proceedings of the 16th ACM SIGSOFT international symposium on foundations of software engineering, SIGSOFT ’08/FSE-16. ACM, New York, NY, USA, pp 146–157CrossRefGoogle Scholar
  16. Hamon G (2002) Calcul d’horloge et structures de contrôle dans Lucid Synchrone, un langage de flots synchrones à la ML. PhD thesis, Univ. P. et M. Curie, Paris, FranceGoogle Scholar
  17. Harel D (2008) Can programming be liberated, period? Computer 41(1):28–37CrossRefGoogle Scholar
  18. Harel D, Naamad A (1996) The STATEMATE semantics of statecharts. ACM Trans Softw Eng Methodol 5(4):293–333CrossRefGoogle Scholar
  19. Harel D, Kugler H, Pnueli A (2005) Synthesis revisited: generating statechart models from scenario-based requirements. In: Formal methods in software and systems modeling. LNCS, vol 3393, pp 309–324Google Scholar
  20. Hellerstein J, Diao Y, Parekh S, Tilbury D (2004) Feedback control of computing systems. Wiley-IEEEGoogle Scholar
  21. Hietter Y, Roussel J-M, Lesage J-J (2008) Algebraic synthesis of transition conditions of a state model. In: Proc. of 9th int. workshop on discrete event systems (WODES’08), Göteborg, pp 187–192Google Scholar
  22. Iordache MV, Antsaklis PJ (2009) Petri nets and programming: a survey. In: Proceedings of the 2009 American control conference, pp 4994–4999Google Scholar
  23. Iordache M, Antsaklis P (2010) Concurrent program synthesis based on supervisory control. In: 2010 American control conferenceGoogle Scholar
  24. Jiang S, Kumar R (2000) Decentralized control of discrete event systems with specializations to local control and concurrent systems. IEEE Trans Syst Man Cybern, Part B 30(5):653–660CrossRefGoogle Scholar
  25. Komenda J, van Schuppen JH (2005) Supremal sublanguages of general specification languages arising in modular control of discrete-event systems. In: 44th IEEE conference on decision and control, pp 2775–2780Google Scholar
  26. Komenda J, Masopust T, van Schuppen JH (2010) Synthesis of safe sublanguages satisfying global specification using coordination scheme for discrete-event systems. Discrete Event Dyn Syst 10:426–431Google Scholar
  27. Kugler H, Plock C, Pnueli A (2009) Controller synthesis from LSC requirements. In: Fundamental approaches to software engineering, FASE’09, York, UK, 22–29 March 2009Google Scholar
  28. Le Gall T, Jeannet B, Marchand H (2005) Supervisory control of infinite symbolic systems using abstract interpretation. In: 44nd IEEE conference on decision and control (CDC’05) and control and European control conference ECC 2005. Seville, Spain, pp 31–35Google Scholar
  29. Lee S-H, Wong KC (2002) Structural decentralized control of concurrent discrete-event systems. Eur J Control 8(5):477–491CrossRefGoogle Scholar
  30. Liu C, Kondratyev A, Watanabe Y, Desel J, Sangiovanni-Vincentelli A (2006) Schedulability analysis of petri nets based on structural properties. In: Sixth international conference on application of concurrency to system design, 2006. ACSD 2006, pp 69–78Google Scholar
  31. Maraninchi F, Morel L (2004) Logical-time contracts for the development of reactive embedded software. In: 30th Euromicro conference, component-based software engineering track (ECBSE). Rennes, France, pp 48–55Google Scholar
  32. Marchand H (1997) Méthodes de synthèse d’automatismes décrits par des systèmes à événements discrets finis. PhD thesis, Université de Rennes 1, IFSICGoogle Scholar
  33. Marchand H, Gaudin B (2002) Supervisory control problems of hierarchical finite state machines. In: 41th IEEE conference on decision and control. Las Vegas, USA, pp 1199–1204Google Scholar
  34. Marchand H, Bournai P, Le Borgne M, Le Guernic P (2000) Synthesis of discrete-event controllers based on the signal environment. Discrete Event Dynamic Systems: Theory Appl 10(4):325–346zbMATHCrossRefGoogle Scholar
  35. Meyer B (1992) Applying “design by contract”. Computer 25(10):40–51CrossRefGoogle Scholar
  36. Phoha VV, Nadgar AU, Ray A, Phoha S (2004) Supervisory control of software systems. IEEE Trans Comput 53(9):1187–1199CrossRefGoogle Scholar
  37. Ramadge PJ, Wonham WM (1987) Supervisory control of a class of discrete event processes. SIAM J Control Optim 25(1):206–230MathSciNetzbMATHCrossRefGoogle Scholar
  38. Schmidt K, Breindl C (2008) On maximal permissiveness of hierarchical and modular supervisory control approaches for discrete event systems. In: 9th international workshop on discrete event systems, 2008. WODES 2008, pp 462–467. IEEEGoogle Scholar
  39. Wallace C, Jensen P, Soparkar N (1996) Supervisory control of workflow scheduling. In: Advanced transaction models and architectures workshop (ATMA), Goa, IndiaGoogle Scholar
  40. Wang Y, Lafortune S, Kelly T, Kudlur M, Mahlke S (2009) The theory of deadlock avoidance via discrete control. In Principles of programming languages, POPL. Savannah, USA, pp 252–263Google Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • Gwenaël Delaval
    • 1
  • Eric Rutten
    • 2
  • Hervé Marchand
    • 3
  1. 1.Univ. Grenoble, LIGGrenobleFrance
  2. 2.INRIA/LIGGrenobleFrance
  3. 3.INRIARennesFrance

Personalised recommendations