Exercice n° 1 : Les Expressions numériques (version impérative)


Syntaxe abstraite des expressions entières :
1. catégories syntaxiques :
e,e1,e2Exp
o {+ | - | * | /}
n Entier

2. définitions :

e ::= n | e1 o e2
les catégories syntaxiques correspondent aux différents types d'objets utilisés (Classes).

donc 3 classes à définir : Expression , Operateur ,  Entier

Les définitions correspondent, dans la version impérative, à la structure d'une expression.





Règles d'inférences de la sémantique d'évaluation : C'est une spécification de la méthode  'int evaluation()' de la classe Expression
CR :
n Entier
    n =v=> n    

    e1 =v=> n1       e2 =v=> n2    

Op + :


n = n1 + n2

e1 + e2 =v=> n

          

   e1 =v=> n1      e2 =v=> n2      

Op - :


n = n1 - n2

e1 - e2 =v=> n

    e1 =v=> n1       e2 =v=> n2    

Op * :


n = n1 * n2

e1 * e2 =v=> n

    e1 =v=> n1       e2 =v=> n2    

Op / :


n = n1 / n2

e1 / e2 =v=> n


QUESTION 1 : A partir de cette sémantique donner les schémas UML des classes  Expression , Operateur ,  Entier

QUESTION 2 : Implanter ces trois classes en Java.
Remarque : Attention aux constructeurs...

QUESTION 3 : Construire un programme de test de l'application ci dessus qui évalue l'expression numérique 1+2*5-3.


/* une idée...