Ce document a été produit par HEVEA.
Votre browser peut avoir a être configuré pour afficher correctement
certains symboles.
Reportez-vous à la documentation d'HEVEA.
Maîtrise d'informatique
Examen -- Compilateur Pascal
Janvier 1997
Documents autorisés --- Durée : 2 heures
Ce document est disponible sous forme d'un fichier PostScript compressé.
On introduit dans le langage PP1 (grammaire page 26 du polycopié)
l'instruction de contrôle compare suivante :
INST |
::= |
... | COMPARE | ... |
COMPARE |
::= |
compare ID with EXPR : RELOP : INST ;
{ RELOP : INST ; } end |
La sémantique de l'instruction compare est la suivante. On
compare la valeur de l'identificateur ID et celle de
l'expression EXPR successivement grâce aux opérateurs
RELOP rencontrés. Dès qu'une comparaison donne vrai,
l'instruction INST correspondante est exécutée et on sort du
compare. Si aucune des comparaisons ne donne vrai, on ne fait
rien.
Exemple :
compare I with MAX :
> : I := MAX ;
< :
compare I with MIN
< : I := MIN ;
end ;
end
Exercice 1 [Analyse syntaxique]
Donner une procédure d'analyse syntaxique pour l'instruction
compare.
Exercice 2 [Précision sémantique]
Préciser une sémantique de l'instruction compare ; en
particulier au regard de l'évaluation de la variable ID
et de l'expresion EXPR.
Exercice 3 [Schéma de génération de P-Code]
Donner la structure de P-Code à générer pour une instruction
compare et schématiser l'évolution de la pile lors de
l'exécution d'une telle instruction de contrôle.
Exercice 4 [Traduction en P-Code] Traduire en P-Code le programme
de la figure 1.
program dicho ;
const RUNNING = 9 ; TERMINE = 11 ;
var sup, inf, val, essai, recherche ;
begin
sup := 1000 ; inf := 0 ;
recherche = RUNNING ;
read (val) ;
while recherche <> TERMINE do begin
write (sup) ; write (inf) ;
essai = (sup+inf)/2 ;
compare val with essai
< : sup := essai-1 ;
= : recherche := TERMINE ;
> : inf := essai+1 ;
end ;
end ;
write (essai) ;
end .
Figure 1 : Programme à traduire en P-Code
Exercice 5 [Génération de code] Étendre la procédure d'analyse
syntaxique de l'exercice 1 pour y inclure
les instructions de génération de P-Code.
Ce document a été traduit de LATEX par
HEVEA.