Langages réactifs synchrones
Année 2019–2020

Début des cours: Vendredi 13 décembre 2019, Bat. Turing, 10h - 12h / 13h - 15h.

Responsable du cours: Marc Pouzet

Objectifs

Les langages synchrones permettent de programmer des systèmes réactifs embarqués à la fois très complexes et très sûrs. Ils rencontrent un grand succès dans divers domaines industriels, pour la programmation du logiciel de controle/commande dans les avions, les trains, les centrales nucléaires, etc. Le système de commande de vol des Airbus, par exemple, est développé avec le langage SCADE et son environnement de développement. SCADE est issu du langage synchrone Lustre et intègrent des constructions issus des langages Esterel et Lucid Synchrone.

Ils sont fondés sur le modèle du parallélisme synchrone. Le compilateur d’un langage synchrone garantit des propriété de sûreté importantes pour le logiciel critique: une sémantique déterministe, l’absence de blocage et la génération d’un code séquentiel s’exécutant en temps et mémoire bornés.

Gérard Berry, titulaire de la chaîre “Algorithmes, machines et langages” au Collège de France, a donné une présentation sur les systèmes embarqués ainsi qu’une série de cours sur la prise en compte du temps dans les programmes, en 2012-2013 et 2013-2014. Jean Vuillemin a donné un cours invité sur les circuits synchrones et nombres 2-adiques, Nicolas Halbwachs sur Lustre et Marc Pouzet sur l’extension d’un langage synchrone pour modéliser des systèmes combinant temps discret et temps continu.

Plan et notes de cours

Toutes les notes sont en anglais (course notes are in english).

Exercices

Une petite liste d’exercices (anciens) de programmation.

Logiciel

Travail personnel:

Cette année, nous vous proposons deux projets différents; l’un consiste à écrire un compilateur vers du code séquentiel (C) de Lustre, l’autre consiste à développer un model-checker par la technique de k-induction.

A rendre au plus tard le 28 février 2020. Le sujet de compilation et le sujet de model-checker avec le code associé. Projet à réaliser seul ou en binôme sur


This document was translated from LATEX by HEVEA.