![]()
Précédent : Intervalles de temps et préemption Remonter
: Intervalles de temps et préemption Suivant
: Expressivité des opérateurs de
préemption
Le besoin d'un langage hybride dans lequel les calculs s'expriment selon un mode flots de données et les séquencements de tâches dans un style plus impératif est apparu dans les applications traitées. Dans le projet Sacres (voir section 4.1 ), il apparaît sous la forme de la combinaison de SIGNAL et de STATECHARTS. Pour SIGNAL nous essayons de proposer une extension sous forme d'intervalles d'instants qui étendrait le calcul d'horloges sur les suites de valeurs à des calculs sur les suites d'intervalles.
À cette fin, nous introduisons dans le langage SIGNAL la notion d'intervalle de temps, défini par ses événements de début et de fin, et désignant un état qui alterne, à partir de sa valeur initiale, entre les valeurs à l'intérieur et à l'extérieur ; par exemple I := ]B,E] init inside. Associer un tel intervalle de temps et un processus flots de données P définit une tâche, c'est-à-dire une activité non instantanée et son intervalle d'exécution. Dans la suspension P on I, le comportement de P reprend à l'entrée dans I à l'état courant de ses variables d'état, alors que dans l'interruption P each I, il reprend depuis son état initial.
Une première version de cette extension à SIGNAL, appelée
SIGNALGT
(G estion de
T âches et d'i ntervalles), est définie de façon
équationnelle, ce qui ouvre la voie à sa traduction en SIGNAL
lui-même, en tant que structures dérivées. Cette version a été
mise en oeuvre sous la forme d'un préprocesseur au compilateur.
Les applications de SIGNALGT
à
la spécification de comportements dynamiques complexes [11, 10] concernent des systèmes de vision
robotique [2], de contrôle de
transformateur électrique [9],
et de simulation par animation comportementale. Les utilisateurs
du préprocesseur SIGNALGT
se
trouvent dans les projets Temis et Siames de l'Irisa, ainsi qu'au
Lan (ECN, Nantes). Des contacts sont pris concernant
Praxitèle.