Bonjour,
J'aimerais avoir votre avis sur le type que j'ai crée. J'aimerais savoir s'il est correct et utilisable.
Dans l'exercice se trouve un type expression :
Et on nous énonce ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 type expression = | Const of int | Var of string | BOp of (int->int->int) * expression * expression
Une instruction peut être:
. une affection d'une expression à une variable,
. une séquence de deux instructions
. un choix d'une instruction parmi deux selon la valeur d'une expression
. une répétition d'une instruction selon la valeur d'une expression
6. Compléter le type instruction
Donc personnellement, j'en ai deux différentes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 type instruction = | Affectation of string * expression | Sequence of instruction * instruction | ...
ou celle-ci (je ne l'aime pas trop) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 type instruction = | Affectation of string * expression | Sequence of instruction * instruction | Choix of instruction * instruction * expression | Repet of instruction * expression
Puis on nous demande de faire ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 type instruction = | Affectation of string * expression | Sequence of instruction * instruction | Choix of (expression->instruction->instruction->instruction) | Repet of (expression->instruction)
7) Donner la représentation par un terme Caml de type instruction du code C suivant:
Pour x = 10; c'est assez simple(je pense)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 x = 10; while (x) x = x - 1;
j'ai fait :
Mais pour la suivante, je ne sais pas trop
Code : Sélectionner tout - Visualiser dans une fenêtre à part Affection ("x", Const 10)
J'ai une forme de ce style
Mon problème c'est que le principe du while(x) n'est pas présent dans cette écriture, il y a bien Repet mais bon...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Repet(Affectation("x",BOp((-),Var "x",Const 1)), Var "x")
Si quelqu'un peut m'aider ça serait gentil .
Cordialement.
Partager