Open Access

A Domain-Specific Language for Multitask Systems, Applying Discrete Controller Synthesis

EURASIP Journal on Embedded Systems20072007:084192

DOI: 10.1155/2007/84192

Received: 30 June 2006

Accepted: 3 January 2007

Published: 19 March 2007


We propose a simple programming language, called Nemo, specific to the domain of multitask real-time control systems, such as in robotic, automotive, or avionics systems. It can be used to specify a set of resources with usage constraints, a set of tasks that consume them according to various modes, and applications sequencing the tasks. We automatically obtain an application-specific task handler that correctly manages the constraints (if there exists one), through a compilation-like process including a phase of discrete controller synthesis. This way, this formal technique contributes to the safety of the designed systems, while being encapsulated in a tool that makes it usable by application experts. Our approach is based on the synchronous modelling techniques, languages, and tools.

[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28]

Authors’ Affiliations

INRIA Rhône-Alpes
Laboratoire d'Informatique Fondamentale de Lille, INRIA Futurs


  1. Henzinger TA, Horowitz B, Kirsch CM: Giotto: a time-triggered language for embedded programming. Proceedings of the IEEE 2003,91(1):84-99. 10.1109/JPROC.2002.805825View ArticleGoogle Scholar
  2. Altisen K, Clodic A, Maraninchi F, Rutten É: Using controller synthesis to build property-enforcing layers. Proceedings of European Symposium on Programming (ESOP '03), April 2003, Warsaw, Poland Google Scholar
  3. Borrelly J-J, Coste-Manière E, Espiau B, et al.: The ORCCAD architecture. International Journal of Robotics Research 1998,17(4):338-359. 10.1177/027836499801700403View ArticleGoogle Scholar
  4. Rutten É: Programmation sûre des systèmes de contrôle/commande: le séquencement de tâches flot de données dans les langages réactifs, Document d'Habilitation à Diriger des Recherches.
  5. Maraninchi F, Rémond Y, Rutten É: Effective programming language support for discrete-continuous mode-switching control systems. Proceedings of the 40th IEEE Conference on Decision and Control (CDC '01), December 2001, Orlando, Fla, USA 3296-3301.Google Scholar
  6. Maraninchi F, Rémond Y: Mode-automata: a new domain-specific construct for the development of safe critical systems. Science of Computer Programming 2003,46(3):219-254. 10.1016/S0167-6423(02)00093-XMATHView ArticleGoogle Scholar
  7. Colaço J-L, Pagano B, Pouzet M: A conservative extension of synchronous data-flow with state machines. Proceedings of the 5th ACM International Conference on Embedded Software (EMSOFT '05), September 2005, Jersey City, NJ, USA 173-182.View ArticleGoogle Scholar
  8. Cassez F, Roux O: Compilation of the ELECTRE reactive language into finite transition systems. Theoretical Computer Science 1995,146(1-2):109-143. 10.1016/0304-3975(94)00136-7MATHMathSciNetView ArticleGoogle Scholar
  9. Altisen K, Gößler G, Sifakis J: Scheduler modelling based on the controller synthesis paradigm. Journal of Real-Time Systems 2002,23(1):55-84. 10.1023/A:1015346419267MATHView ArticleGoogle Scholar
  10. Halbwachs N: Synchronous Programming of Reactive Systems. Kluwer Academic, Boston, Mass, USA; 1993.MATHView ArticleGoogle Scholar
  11. Halbwachs N: Synchronous programming of reactive systems, a tutorial and commented bibliography. Proceedings of the 10th International Conference on Computer Aided Verification (CAV '98), June 1998, Vancouver, BC, Canada, Lecture Notes in Computer Science 1427: 1-16.MathSciNetGoogle Scholar
  12. Benveniste A, Caspi P, Edwards SA, Halbwachs N, Le Guernic P, de Simone R: The synchronous languages 12 years later. Proceedings of the IEEE 2003,91(1):64-83. 10.1109/JPROC.2002.805826View ArticleGoogle Scholar
  13. Le Guernic P: Compilation involving model-checking and controller synthesis. personal communication, 1996Google Scholar
  14. Halbwachs N, Lagnier F, Raymond P: Synchronous observers and the verification of reactive systems. Proceedings of the 3rd International Conference on Algebraic Methodology and Software Technology (AMAST '93), June 1993, Twente, The Netherlands 83-96.Google Scholar
  15. Potop-Butucaru D, de Simone R: Optimizations for faster execution of Esterel programs. Proceedings of the 1st ACM and IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE '03), June 2003, Mont-Saint-Michel, France 227-236.Google Scholar
  16. Chakrabarti A, de Alfaro L, Henzinger T, Mang F: Synchronous and bidirectional component interfaces. Proceedings of the 14th International Conference on Computer Aided Verification (CAV '02), July 2002, Copenhagen, Denmark 414-427.Google Scholar
  17. Berry G: The foundations of Esterel. In Proof, Language, and Interaction: Essays in Honour of Robin Milner. Edited by: Plotkin G, Stirling C, Tofte M. MIT Press, Cambridge, Mass, USA; 2000:425-454.Google Scholar
  18. Coste-Manière E, Turro N: The MAESTRO language and its environment: specification, validation and control of robotic missions. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '97), September 1997, Grenoble, France 2: 836-841.Google Scholar
  19. Ramadge PJ, Wonham WM: Supervisory control of a class of discrete event processes. SIAM Journal on Control and Optimization 1987,25(1):206-230. 10.1137/0325013MATHMathSciNetView ArticleGoogle Scholar
  20. Darondeau P: Verification is autopsy. personal communication, October 2004Google Scholar
  21. Marchand H, Bournai P, Le Borgne M, Le Guernic P: Synthesis of discrete-event controllers based on the signal environment. Discrete Event Dynamic Systems: Theory and Applications 2000,10(4):325-346. 10.1023/A:1008311720696MATHMathSciNetView ArticleGoogle Scholar
  22. Marchand H, Rutten É: Managing multi-mode tasks with time cost and quality levels using optimal discrete control synthesis. Proceedings of the 14th Euromicro Conference on Real-Time Systems (ECRTS '02), June 2002, Vienna, Austria 241-248.Google Scholar
  23. Kloukinas C, Nakhli C, Yovine S: A methodology and tool support for generating scheduled native code for real-time Java applications. Proceedings of the 3rd International Conference on Embedded Software (EMSOFT '03), October 2003, Philadelphia, Pa, USA, Lecture Notes in Computer Science 2855: 274-289.Google Scholar
  24. Rutten É, Marchand H: Automatic generation of safe handlers for multi-task systems. In Rapport de Recherche 5345. INRIA, Le Chesnay Cedex, France; 2004. Google Scholar
  25. Kloukinas C, Yovine S: Synthesis of safe, QoS extendible, application specific schedulers for heterogeneous real-time systems. Proceedings of the 15th Euromicro Conference on Real-Time Systems (ECRTS '03), July 2003, Porto, Portugal 287-294.Google Scholar
  26. Delaval G, Rutten É: A domain-specific language for task handlers generation, applying discrete controller synthesis. Proceedings of the 21st Annual ACM Symposium on Applied Computing (SAC '06), April 2006, Dijon, France 1: 901-905.Google Scholar
  27. Jagadeesan LJ, Puchol C, Olnhausen JV: Safety property verification of Esterel programs and applications to telecommunications software. Proceedings of the 7th International Conference on Computer Aided Verification (CAV '95), July 1995, Liège, Belgium, Lecture Notes in Computer Science 939: 127-140.Google Scholar
  28. Girault A, Rutten É: Discrete controller synthesis for fault-tolerant distributed systems. Proceedings of the 9th International Workshop on Formal Methods for Industrial Critical Systems (FMICS '04), September 2004, Linz, Austria Google Scholar


© G. Delaval and É. Rutten. 2007

This article is published under license to BioMed Central Ltd. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.