![]()
Précédent : Nouvelle version de Signal : Signal
Remonter : Modèle et langage (évolution) Suivant :
Horloges régulières en Signal
Participants : David Nowak, Jean-Pierre Talpin, Thierry Gautier
Nous avons défini un système de modules avancé pour le langage SIGNAL. Ce système met en oeuvre des notions de types polymorphes, de types abstraits et de modules d'ordre supérieur. Au moyen de ces notions, il est capable de structurer un programme SIGNAL en un ensemble de composants génériques et réutilisables. Le système s'intègre parfaitement au schéma de compilation du langage SIGNAL : la méthodologie de programmation de SIGNAL préconise la définition d'un programme par l'affinement progressif de ses propriétés, depuis la spécification de ses invariants jusqu'à sa mise en oeuvre effective (i.e. la génération de code). Notre système intègre ces principes en supportant la déclaration de spécifications. Il utilise pour cela des notions de types abstraits et de sous-typage entre modules. Le prototype réalisé traduit un programme SIGNAL modulaire en un programme SIGNAL V4. Il devrait s'intégrer facilement dans le compilateur et servir à la compilation séparée et à l'interfaçage des programmes SIGNAL avec des librairies externes.
Pour réaliser ce système, nous avons tout d'abord étudié la synthèse de types et donné une spécification formelle du typage en SIGNAL en faisant intervenir des notions de polymorphisme et de sous-typage. L'intégration de ce système au compilateur SIGNAL est en cours.