previous up next top index
Précédent : Esterel et la programmation réactive Remonter : Esterel et la programmation réactive Suivant : Le compilateur Esterel v5


Etude de la causalité

  Participants : Gérard Berry, Ellen Sentovich, Delphine Terrasse

Comme dans tous les langages synchrones, la propagation de signaux en Esterel est supposée instantanée. Ceci rend possible d'écrire des programmes paradoxaux exprimant par exemple « j'émet un signal si et seulement si je ne le reçois pas ». La caractérisation exacte de ces programmes paradoxaux est connue sous le nom de problème de la causalité ; c'est le problème central de la sémantique d'Esterel. Nous avons établi le rapport entre la causalité en Esterel, le point de vue constructif en logique mathématique, et la propagation des fronts électriques dans les circuits digitaux. Nous avons d'abord défini la notion de logique booléenne constructive et établi qu'un circuit est bien défini dans cette logique si et seulement si ses fils se stabilisent électriquement quels que soient les délais de ses portes. Nous avons ensuite défini une sémantique constructive intrinsèque d'Esterel et donné une traduction d'Esterel en circuits qui préserve la constructivité [1]. Cette traduction a été prouvée correcte pour un sous-ensemble du langage en utilisant le système de vérification COQ dans le cadre de l'action Génie 4.3. Cet ensemble de résultats indique que la notion de constructivité est probablement la notion de causalité la plus naturelle en Esterel. Par ailleurs, nous avons défini des algorithmes permettant de tester efficacement la constructivité des programmes.