0% ont trouvé ce document utile (0 vote)
54 vues5 pages

Exam Solution

Transféré par

mrradroy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
54 vues5 pages

Exam Solution

Transféré par

mrradroy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université El Arbi Ben M’Hidi Oum El Bouaghi

Faculté de sciences exactes et Sciences de la nature et de la vie


Département de Mathématique

Niveau : 3éme années licence SI Dimanche 14 mai 2023 Nom : …………………………….


Module : Compilation Durée 1h 30 m Prénom : ………………………….
Groupe : ………………………….
Examen Final
Exercice 01 (6 points) : choisir les bonnes réponses
1. Une grammaire LR (1) est aussi 2. Que signifie une erreur de syntaxe ?
a. SLR (1). ☐ a. Une erreur dans la logique du programme ☐
b. LR (0). ☐ b. Une erreur dans la sortie du programme ☐
c. LL (1). ☐ c. Une erreur dans la structure du programme ☒ 1
d. Aucune de ces réponses. 1 ☒ d. Une erreur dans l'exécution du programme ☐
3. Une grammaire LR (0) est aussi 4. Dans l'analyse lexicale, le rôle des expressions régulières est de :
a. SLR (1). ☒ a. Définir la syntaxe d'un langage de programmation ☐
1
b. LR (1). ☒ b. Reconnaître et catégoriser les lexèmes ☒1
c. LALR (1). ☒ c. Spécifier les règles de grammaire ☐
d. Aucune de ces réponses. ☐ d. Générer du code machine ☐
5. Une grammaire SLR (1) est aussi 6. Une grammaire ambiguë est une grammaire :
a. LR (0). ☐ 1. Qui permet plusieurs interprétations pour la même entrée. ☒ 1
b. LR (1). ☒ 2. Sans aucune règle ☐
c. LALR (1). 1 ☒ 3. Avec une seule interprétation possible ☐
d. Aucune de ces réponses. ☐ 4. Qui ne reconnaît que les mots-clés ☐

Exercice 02 (6.25 points) :


𝑆 → 𝐸 ;𝑆 | 𝜖
𝐸 →𝐸+𝑇|𝑇
𝐺1 ∶ {
𝑇 →𝑇∗𝐹|𝐹
𝐹 → 𝑖𝑑 | (𝐸)
1. Donnez la suite de dérivation à gauche du mot "id * id + id ;".
S → E ; S → E + T ; S → T + T ; S → T * F + T ; S → F * F + T ; S → id * F + T ; S → id * id + T ;
S → id * id + F ; S → id * id + id ; S → id * id + id ; 0.5
2. Dessinez l'arbre de dérivation du mot "id * id + id ;".
0.5

3. Est-ce que G1 est LL (1), justifiez sans passer par le tableau.


Non, G1 n'est pas LL (1) car il a des récursivités à gauches. 0.5
4. Si non, éliminez la cause, la nouvelle grammaire G' est-elle LL (1) ? (Utiliser la table).
𝑆 → 𝐸 ;𝑆 | 𝜖
𝐸 → 𝑇𝐸 ′
𝐸 → +𝑇𝐸 ′ |𝜖 0.5

𝐺′ :
𝑇 → 𝐹𝑇 ′
𝑇 →∗ 𝐹𝑇 ′ |𝜖

{ 𝐹 → 𝑖𝑑 | (𝐸)
N Suivant ; + * id ( ) #
S # S→E;S S→E;S S→𝜖
E ;,) E → TE’ E → TE’
E’ ;,) E’ → 𝜖 E’ → +TE’ E’ → 𝜖
T +,;,) T → FT’ T → FT’
T’ +,;,) T’ → 𝜖 T’ → 𝜖 T’ → *FT’ T’ → 𝜖
F *,+,;,) F → id F → (E)
1.5 1.5
Le tableau ne comporte pas de conflit, la grammaire est donc LL (1) 0.25

5. En utilisant le tableau d'analyse LL (1) de G1 ou G', analyser le mot « id * id + id ; »


Etat de la pile Entrée Action
#S id * id + id ; # Dépiler (S), Empiler (S, ; , E)
#S ;E id * id + id ; # Dépiler (E), Empiler (E’ , T)
#S ;E’T id * id + id ; # Dépiler (T), Empiler (T’ , F)
#S ;E’T’F id * id + id ; # Dépiler (F), Empiler (id)
#S,E’T’id id * id + id ; # Dépiler (id)
#S ;E’T’ * id + id ; # Dépiler (T’), Empiler (T’, F , *)
#S ;E’T’F* * id + id ; # Dépiler (*)
1 #S ;E’T’F id + id ; # Dépiler (F), Empiler (id)
#S ;E’T’id id + id ; # Dépiler (id)
#S ;E’T’ + id ; # Dépiler (T’)
#S ;E’ + id ; # Dépiler (E’), Empiler (E’, T , +)
#S ;E’T+ + id ; # Dépiler (+)
#S ;E’T id ; # Dépiler (T), Empiler (T’, F)
#S ;E’T’F id ; # Dépiler (F), Empiler (id)
#S ;E’T’id ;# Dépiler (id)
#S ;E’T’ ;# Dépiler (T’)
#S ;E’ ;# Dépiler (E’)
#S ; ;# Dépiler ( ; )
#S # Dépiler (S)
# # Accepter

Exercice 03 (7.75 points) :


𝑁→𝑀𝐿𝐹𝑃
𝑀 → −| 𝜖
𝐿→𝑐𝐵
𝐺2 ∶ 𝐵 →𝑐𝐵|𝜖
𝐹 → ,𝐿 | 𝜖
{𝑃 → 𝐸 𝑀 𝐿 | 𝜖
1. Est-ce que G2 est SLR ?

La table des suivants 𝑅1 ∶ 𝑁 → 𝑀 𝐿 𝐹 𝑃


N Suivant 𝑅2 ∶ 𝑀 → −
N {#} 𝑅3 ∶ 𝑀 → 𝜖
M {c} 𝑅4 ∶ 𝐿 → 𝑐 𝐵
L {,,#,E} 1.5 𝑅5 ∶ 𝐵 → 𝑐 𝐵
𝐺2 ∶
B {,,#,E} 𝑅6 ∶ 𝐵 → 𝜖
F {E,#} 𝑅7 ∶ 𝐹 → , 𝐿
P {#} 𝑅8 ∶ 𝐿 → 𝜖
𝑅9 ∶ 𝑃 → 𝐸 𝑀 𝐿
{ 𝑅10 ∶ 𝑃 → 𝜖
LA TABLE SLR
STATE ACTION ALLER_À
- C , E # N M L B F P
0 S3 R3 1 2
1 ACC
2 S5 4
3 R2
4 S 7 R8 R8 6
5 S 9 R6 R6 R6 8
0.25 * 15 6 S11 R10 10
7 S5 12
8 R4 R4 R4
9 S 9 R6 R6 R6 13
10 R1
11 S3 R3 14
12 R7 R7
13 R5 R5 R5
14 S5 15
15 R9

Le tableau ne comporte pas de conflit, la grammaire est donc SLR (1) 0.25
2. Est-ce que G2 est LR (0), justifier sans passer par la table.
Non, car il y a plusieurs conflits dans les états de l'automate 0.75
3. Si la grammaire n'est pas LR(0), citez au moins deux conflits possibles.
a. Dans l'état I0, il y a un conflit shift/reduce dans le terminal « c »
b. Dans l'état I4, il y a un conflit shift/reduce dans le terminal «, »
c. Dans l'état I5, il y a un conflit shift/reduce dans le terminal « c » 0.5
d. Dans l'état I6, il y a un conflit shift/reduce dans le terminal « E »
e. Dans l'état I9, il y a un conflit shift/reduce dans le terminal « c »
f. Dans l'état I11, il y a un conflit shift/reduce dans le terminal « - »
g. Dans l'état I14, il y a un conflit shift/reduce dans le terminal « c »

4. Analyser le mot « - c c , c »
Etat de la pile Entrée Action
0 -cc,c# SHIFT (-), état = 3
0-3 cc,c# R2, DÉPILER (2)
0M cc,c# Changement d’état = 2
0M2 cc,c# SHIFT (c), état = 5
0M2c5 c,c# SHIFT (c), état = 9
1 0M2c5c9 ,c# R6 DÉPILER (0)
0M2c5c9B ,c# Changement d’état = 13
0M2c5c9B13 ,c# R5 , DÉPILER (4)
0M2c5B ,c# Changement d’état = 8
0M2c5B8 ,c# R4 , DÉPILER (4)
0M2L ,c# Changement d’état = 4
0M2L4 ,c# SHIFT ( , ), état = 7
0M2L4,7 c# SHIFT (c), état = 5
0M2L4,7c5 # R6 , DÉPILER (0)
0M2L4,7c5B # Changement d’état = 8
0M2L4,7c5B8 # R4 , DÉPILER (4)
0M2L4,7L # Changement d’état = 12
0M2L4,7L12 # R7 , DÉPILER (4)
0M2L4F # Changement d’état = 6
0M2L4F6 # R10 , DÉPILER (0)
0M2L4F6P # Changement d’état = 10
0M2L4F6P10 # R1 , DÉPILER (8)
0N # Changement d’état = 1
0N1 # Accepter

Vous aimerez peut-être aussi