du
 → 

Ce cours a présenté en détail le langage de programmation synchrone Esterel, déjà décrit de façon succincte dans deux séances en 2012-2013. Esterel est destiné aux systèmes réactifs, c’est-à-dire aux systèmes informatisés capables de réagir au temps et aux événements provenant de l’extérieur en étant soumis à des contraintes de temps de réponse.

Ces systèmes se trouvent en particulier dans l’informatique embarquée destinée à conduire et surveiller les objets informatisés (avions, voitures, etc.), dans les circuits électroniques digitaux, et dans d’autres dispositifs comme les interfaces homme-machine et les protocoles de communication des réseaux. Esterel permet de les programmer de façon sûre, en donnant de plus accès à des systèmes de vérification automatique d’absence de bugs.

Le cours a expliqué en détail ses points essentiels : choix syntaxiques, style de programmation, chaînes de sémantiques mathématiques conduisant de la spécification formelle à l’implémentation, traduction en circuits digitaux ou en code C exécutable, et vérification formelle des programmes. La spécification rigoureuse du langage et ses implémentations directement fondées sur sa sémantique formelle ont joué un rôle crucial dans les développements académiques et industriels du langage et de son outillage. Industrialisé par Esterel Technologies, Esterel a reçu des applications industrielles dans des domaines variés : avionique, interfaces homme-machine, synthèse et vérification de circuits électroniques, etc.

Pour le langage SCADE 6 de la société Esterel technologies, Esterel a été unifié avec Lustre, autre langage synchrone développé à Grenoble. Il sert aussi de base à une extension de JavaScript nommée HipHop, qui fait actuellement l’objet de mes recherches en collaboration avec Manuel Serrano à l’Inria Sophia-Antipolis, ainsi qu’à d’autres langages à travers le monde.