Projet
Réalisation d'un petit langage de processus. Le projet se
partage en plusieurs étapes:
- analyseur lexical
- analyseur syntaxique
- analyseur de noms/types
- interprè d'expressions
- interprète de commandes
- interprète de processus
Il est conseillé de travailler dans des groupes
de 2 - 3 personnes.
Le langage
A la base, le langage est impératif (commandes appliquant
des expressions). Là-dessus on rajoute une couche de processus
parallèls. On utilise la même syntaxe pour déclarations et
assignations. Il n'y a pas de commentaires.
Programmes
Un programme se compose d'une composition parallèle
de déclarations et de processus.
Exemple:
a := 0 ||
b := 2 ||
proc aplusb { a := a + b } ||
proc bplusa { b := b + a }
Processus
Un processus commence avec le mot clé proc, qui est suivi
par un identificateur et une séquence de commandes.
Exemple:
proc aplusb { a := a + b; [entree en section critique]; a := a - b }
Commandes
Une assignation est une commandes. Une action est une commande.
Deux commandes peuvent être
liées par une composition séquencielle. Conditionnel,
boucle et boucle conditionnelle sont des commandes.
Exemple:
loop {
a := 0;
while a = 1 [attente];
if a = 0 then { [entree en section critique];
[sortie de la section critique] };
a := 1
}
Expressions
Identificateurs et nombres sont des expressions. Ensuite, il y a
les opérateurs suivants: addition , subtraction, multiplication,
division (+, -, *, /),
comparaison (=, <), conjonction et
négation (&, !).
Identificateurs
Un identificateur commence par un caractère et finit par
une suite de caractères et chiffres.
Nombres
Un nombre se compose d'une suite de chiffres.
Analyse lexicale
Sous scanner.shtml, vous trouvez
les fichiers de source ainsi que des instructions pour réaliser
les programmes.
Analyse syntaxique
Sous syntaxe.shtml, vous trouvez
les fichiers de source ainsi que quelques instructions pour
réaliser les programmes. Plus d'explications pendant
le travail sur le projet.
Christine Röckl
Last modified: Fri Apr 12 15:09:12