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 1996
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 repeat ... while suivante :
INST |
::= |
INSTS | AFFEC | SI | TANTQUE | ECRIRE | LIRE | REPETER |
REPETER |
::= |
repeat INST while COND do INST |
L'instruction repeat ... while est une boucle dans laquelle
la condition d'arrêt est testée au milieu de chaque itération.
Exemple :
repeat
read (I)
while I <> 0 do
PRODUIT := PRODUIT * I
Exercice 1 [Analyse syntaxique]
Donner une procédure
d'analyse syntaxique pour l'instruction repeat ... while.
Exercice 2 [Alternative syntaxique] Discuter (brièvement) de
l'alternative suivante à la définition de l'instruction
repeat ... while :
REPETER |
::= |
repeat INST { ; INST } while COND do INST |
Exercice 3 [Schéma de génération de P-Code] Donner le schéma de P-Code à
générer pour une instruction repeat ... while.
Exercice 4 [Traduction en P-Code] Traduisez en P-Code le programme
suivant :
program dicho
var sup, inf, val, essai ;
begin
sup := 1000 ; inf := 0 ; read (val) ;
repeat
begin
write (sup) ; write (inf) ;
essai := (sup+inf)/2
end
while (val <> essai) do
begin
if (val < essai) then
sup := essai-1 ;
if (val > essai) then
inf := essai+1
end ;
write (essai)
end .
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.