Académique Documents
Professionnel Documents
Culture Documents
Exercice 2 (4 points)
On considère le programme suivant lexicalement et syntaxiquement correct:
A : réel ;
B : entier ;
A = 5,3 ;
B = 6,2 ;
C=4;
Un programme est en fait défini syntaxiquement comme une suite de déclarations, suivie d’une suite
d’instructions : <programme> ::= {<déclaration>} {<instruction>}
Le programme ci-dessus est correct vis à vis de cette définition.
On introduit les règles suivantes pour l’analyse sémantique:
- Tout identificateur utilisé dans une instruction doit être déclaré.
- Dans une instruction, l’identificateur à gauche du = et le nombre à droite doivent être de même type.
Quelles sont les erreurs signalées par l’analyse sémantique du programme ? Justifier la réponse.
Exercice 3 (6 points)
Soit la grammaire G = ({ E, T, F}, {id,nb,+,*,(,)}, , E) définie par les règles de productions suivantes
E E+T / T
T T*F / F
F (E) / id /nb
En utilisant les attributs synthétisés :
1. Ecrire une DDS qui transforme une expression infixée à une expression post fixée.
2. Donner l’arbre décoré de la chaîne : a+b*c.
Exercice 4 (6 points)
Donner les différents états de la pile à l’exécution et du display pour le programme suivant où le seul type de
passage de paramètres autorisés est l’appel par valeur :
Program PP
Var n,z : integer ;
Procedure U (n:integer);
Begin
If n:=0 then z:=1 else V(n-1);
end;
Procedure V(n:integer);
Begin
If n:=0 then z:=0 else U(n-1);
end ;
Begin
n :=2 ; U(n) ;
end.
Bon courage
Bon courage MmeMme BOUSAHBA
BOUSAHBA
Université Hassiba Benbouali Chlef Année universitaire : 2018/2019
Faculté des sciences exactes et informatique Module : Compilation
Département Informatique Niveau : Master 1 IL
Exercice 2
B est déclaré en entier et on lui affecte un réel. (2 pts) C n’est pas déclaré. (2 pts)
Exercice 3
1. La DDS qui transforme une expression infixée à une expression post fixée est (3.5 pts)
abc*+
a bc*
a b c
a b c
a b
Exercice 4 (6pts)
a4 a3
Env U(0) 0 n
Bc=a3 , sp =a4 a1 a2
a2 R3 2 a0 a2 a3
Env V(1) 1 n a0
Bc=a2 , sp=a3 a1 R2 2 a0 a1 a2
Env U(2) 2 n
Bc=a1 ,sp=a2 nil R1 2 a0 a0 a1 R1 : n :=2 ; U(n)
Env.pp @u
Bc=a0 @v R2 : n:=0 then z:=1 else V(n-1)
Sp=a1 1 z R3: n:=0 then z:=0 else U(n-1);
2 n
nil 1 a0
Exercice 3 (4 points)
Traduire l’expression a :=-c*b+c*b en
a)une notation post fixée
b) du code à 3 adresses
a) Quadruplets ;
b) Triplets ;
Exercice 4 (6 points)
Donner les différents états de la pile à l’exécution et du display pour le programme suivant où le seul type de
passage de paramètres autorisés est l’appel par valeur :
Programme PP
Entier z ; z:=2;
Procedure b
Debut
Entier x ; x:=z ; z:=z+x ;
Fin
Procédure a (val n : entier )
Début
Si n :=1 alors b ;
Sinon a(n-1) ; ,
Fin
a(3) ;
Fin