next up previous


MGL7160: Exercice #7


13 mars 2001

Processus LOTOS avec synchronisation et communication


On veut définir un processus ChangerExposants, dont l'interface et la fonctionalité sont données plus bas, qui va remplacer, dans un stream de caractères, les paires consécutives d'astérisques (de la forme ``**'') par le caractère ``^'', les autres caractères étant inchangés.

Plus précisément, le processus ChangerExposants va recevoir un caractère à la fois sur le port entree -- donc à l'aide d'une expression de la forme ``entree ?nomVariable: char'' -- et va transmettre les caractères résultants, un à la fois, sur le port sortie -- donc avec une expresssion de la forme ``sortie !variable'' ou ``sortie !'c'''.

L'en-tête du processus ChangerExposants est comme suit:

    PROCESS ChangerExposants[entree, sortie]: NOEXIT :=

Notez que le nom du processus à définir est ``ChangerExposants'' car ``**'' et ``^'' sont deux façons de représenter l'opérateur d'exponentiation (à la FORTRAN vs. à la Pascal ou Spec).

[10] a) Donnez une spécification LOTOS du processus ChangerExposants.


Note: La portée d'une variable s'étend du point de sa déclaration jusqu'à la fin de la sous-expression de comportement dont elle fait partie. Par exemple, les déclarations et utilisations suivantes seraient correctes:

  act1 ?x: nat;
  act2 ?y: nat;
  ([x  = y] -> ... x ... y  ...
   []
   [x ~= y] -> ... x ... y  ...
  )

[5] b) Donnez la spécification LOTOS d'un processus CopierEtChangerExposants, dont l'interface est donnée plus bas, qui va permettre de lire en entrée (sur le port entree) des lignes de caractères de longueur variable, va remplacer les exposants du style ``**'' par ceux de style ``^'', et va ensuite produire en sortie (sur le port sortie) des lignes de 132 caractères:
  PROCESS CopierEtChangerExposants[entree, sortie]: NOEXIT :=


Indice : Utilisez le processus ChangerExposants ainsi que les processus Paqueter et Depaqueter (introduits dans les notes de cours sur LOTOS à la page 27) que vous combinerez de façon concurrente. Vous n'avez pas besoin de redonner les spécifications de ces processus; faites simplement les utiliser.

About this document ...

MGL7160: Exercice #7

This document was generated using the LaTeX2HTML translator Version 97.1 (release) (July 13th, 1997)

Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split +0 -auto_navigation lotos-exposant.tex.

The translation was initiated by Tremblay Guy on 3/12/2001


next up previous
Tremblay Guy
3/12/2001