Interprétation abstraite d'un programme Signal
Le codage polynomial décrit les aspects logiques et la synchronisation des programmes Signal. Les informations représentées sont l'absence ou la présence des signaux ainsi que la valeur des signaux booléens.

Les signaux
Dans le but de modéliser son comportement, un processus Signal est traduit en un système d'équations polynomiales sur les entiers modulo 3 : { -1, 0, 1} . Le principe est de coder les trois valeurs possibles d'un signal booléen A (i.e. present et true, present et false et absent) en une variable a de la manière suivante :

  1. Un booléen présent et true est codé par la valeur 1
  2. Un booléen présent et faux est codé par la valeur -1
  3. Un booléen absent est codé par la valeur 0

Pour les signaux non-booléens dont la valeur ne peut pas être représentée,seule l'absence et la présence sont codées:

  1. Un signal non booléen présent est codé par 1
  2. Un signal non booléen absent est codé par 0

Par ce codage, un événement sur n signaux est représenté par un vecteur dans (F3)n. De plus, la présence d'un signal est codée par la valeur 1. Par conséquent un signal A est synchrone avec un signal B si et seulement si ils satisfont l'équation a2 = b2.

Les processus primitifs
Chaque opérateur élémentaire du noyau Signal peut ainsi être codé sous forme équationnelle. Par exemple, C := A when B, signifiant : if b=1 then c=a else c=0, est réécrit c = a(b-b2).

Le délai $, qui est l'opérateur dynamique, est différent, car il requiert la mémorisation de la dernière valeur dans une variable d'état. Ainsi pour coder A := B$1 init A0, il est nécessaire d'introduire les trois équations suivantes:

L'équation (1) permet de calculer la nouvelle valeur x' de la variable d'état. Si b est présent, x' est égal à b (parceque (1-b2)=0 ); autrement x' est égal à la dernière valeur de b, mémorisé par x. L'équation (2) donne à a la dernière valeur de b (i.e. la valeur de x) et contraint l'horloge de a à être égale à celle de b. En effet, on a a2= x2b4 , et dans F3 nous avons b3 = b , i.e. b4 = b2 , ceci donne donc a2= x2b2 ; Comme de plus x2 = 1 (car x est toujours présent), et finalement a2 = b2 . L'équation (3) correspond à la valeur initiale de x, qui est la valeur initiale de a.

Certains opérateurs peuvent être codés de deux façons suivant le type des signaux. L'ensemble des codages est donné par la table suivante :

o

Les processus
En composant les différentes équations résultantes des différents processus élémentaires, tout programme Signal peut être traduit en un ensemble d'équations, appelé système dynamique polynomial. En utilisant ce codage, un processus est donc traduit en un système d'équations de la forme :

Ce système est constitué

Les X proviennent de la traduction des signaux retardés, les Y représentent les signaux booléens et les horloges du programme. Le système dynamique décrit les suites de couples états / événements que peut produire le programme, c'est à dire les suites (xi,yi)i telles que Q0(x0) = 0 . Ces suites sont appelées les trajectoires du système. Un couple x,y tel que Q(x,y) = 0 est dit admissible ; on dira aussi qu'un état x est admissible s'il existe un y tel que Q(x,y) = 0. Si x et x' sont deux états et qu'il existe un y tel que Q(x,y) = 0 et x' = (x,y), on dira que x' est un successeur de x et réciproquement que x est un prédécesseur de x'.

Exemple
Le programme Signal suivant,

est codé par un système dynamique polynomial comprenant les variables a, b, c et zc, correspondant respectivement aux événements A, B et aux signaux booléens C et ZC, et une variable d'état x, introduite par le delai. Le système obtenu est le suivant :

  1. une équation d'évolution : x = -1,
  2. une équation d'évolution : x' = c + (1-c2)*x
  3. un système d'équations de contraintes : c = -zc, zc = x*c2, a2= when c, b2 = when zc

Système de transition résultant
Un système dynamique polynomial peut également être vu comme un système de transition fini. Les états initiaux de l'automate sont les solutions de l'équation Q0(X) = 0 . Quand le système est dans l'état x de (F3)n, tout événement y de (F3)m tels que Q(x,y))=0 constitue une transition qui peut être tirée. Dans ce cas le système évolue dans l'état x' tel que x'=P(x,y).


Webmaster : epatr_webmaster@irisa.fr
Last modified: Wed Mar 24 13:30:06 MET 1999