SIGNAL est un langage FLOT DE DONNEES, SYNCHRONE, permettant de
décrire des relations entre des suites d'événements valués,
les signaux. Il y a trois types de relation :
une relation de précédence entre les événements d'un
même signal, ce qui permet de les compter et donc de dater leurs valeurs
une relation de simultanéité entre événements de
signaux différents, on peut toujours savoir s'ils coïncident ou sont
distincts
des relations de dépendances opératoire éventuellement
conditionnées qui définissent
des signaux de sorties, résultats d'opérations faites sur des signaux
d'entrée. Quand elles sont conditionnées certains événements des
signaux de sortie peuvent être absents
L'hypohtèse synchrone consiste à supposer que les sorties produites
par une dépendance opératoire éventuellement conditionnée, sont
simultanées avec ses entrées. On
ne prend pas en considération à ce niveau les caractéristiques
matérielles, le concept de durée n'existe qu'au travers du comptage des
événements d'un signal.
Deux signaux sont synchrones si leur événements sont deux à deux
simultanés (présent en même temps), ce qui définit une relation
d'équivalence. La classe d'équivalence d'un signal X est appelée son
horloge, , qui définit ses Présences/absences
relativement à d'autres signaux. On définit également
l'horloge
des valeurs vraies d'un signal booléen b qui sert au conditionnement
(
).
A l'aide du calcul ensembliste (implanté par du calcul booléen naturel sur
{présent, absent}) on définit les relations temporelles de base sur les
horloges des signaux :
On dispose de quatre processus élémentaires pour décrire des
relations opératoires et d' une instruction de composition de processus
élémentaires ``|`` réalisant des connexions par identité de nom de
signaux identiques.
Un programme ou Processus en SIGNAL est la composition de processus élémentaires et/ou de processus (encapsulation, modularité).
Les algorithmes sont représentés par un graphe orienté dans lequel :
Le compilateur :
SYNTAXE ET SEMANTIQUE DES PROCESSUS ELEMENTAIRES