Projet

Réalisation d'un petit langage de processus. Le projet se partage en plusieurs étapes: 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