Précédent : Résultats nouveaux Remonter :
Résultats nouveaux
Suivant : Ordre supérieur et mobilité
Mots clés : programmation synchrone, Signal, format commun, DC+, transformation de programme .
Participants : Loïc Besnard, Patricia Bournai, Thierry
Gautier, Paul Le Guernic.
Afin de pouvoir définir de manière plus pratique des automates en Signal, nous avons ajouté au langage, en plus des types énumérés, une notion de choix sur processus représenté par une instruction case.
L'essentiel du travail sur Signal V4 a porté cette année sur la compilation. Un travail important de restructuration a été réalisé en vue de la connexion du compilateur Signal à la machine virtuelle développée autour du format DC+. Désormais la représentation interne des graphes est commune aux deux formalismes. Les transformations inter-formats telles qu'elles avaient été définies pour DC+ (voir section 7.4) ont été ré-implémentées sur cette représentation commune et sont maintenant disponibles comme des fonctionnalités de l'environnement Signal- DC+. Une nouvelle représentation des types a été définie et implémentée, permettant la représentation des types de Signal V4 et des types de DC+. La compilation de bibliothèques de programmes Signal a été mise en oeuvre. Cette fonctionnalité permet d'avoir rapidement des bibliothèques équivalentes en DC+.
Les algorithmes de manipulation de graphes permettant la compilation séparée et la distribution de programmes Signal ou DC+ ont été implémentés (voir section 6.11). Le générateur de code C a été modifié afin qu'un processus puisse être appelé en tant que processus compilé séparément.
L'éditeur graphique de programmes a été enrichi par la notion de bibliothèque et par l'utilisation possible d'icônes : une expression de processus peut maintenant être représentée par une icône choisie dans une bibliothèque. Les utilisateurs peuvent ainsi construire eux-mêmes leurs propres bibliothèques qui peuvent être dédiées à un domaine particulier (architecture, communications...) ou être générales.
Le compilateur a été intégré complètement à l'éditeur et toutes ses fonctionnalités sont accessibles graphiquement via des boutons. Un automate (écrit en Signal) gère l'accès à ces fonctionnalités en rendant inaccessibles certains boutons à certains moments (toutes les fonctionnalités ne peuvent être appelées à n'importe quel moment).
Un simulateur de programmes peut être généré de manière quasi-automatique. L'utilisateur peut alors choisir ses entrées (uniquement booléennes pour le moment) à travers une interface graphique. Il existe plusieurs modes de fonctionnement : mode pas à pas, mode continu, mode aléatoire. La partie graphique du simulateur est écrite en Java.