Vous êtes sur la page 1sur 58

Université Ibn Zohr

Faculté des Sciences Agadir

Département Informatique

Filières LF-Sciences Mathématiques et Informatique/


LP-Ingénierie Informatique

Semestre 5

Module Compilation

Examens avec corrections

Pr. Mustapha Machkour

Année universitaire 2020-2021


i
Table des matières

Table des matières ...................................................................................................................... ii


Présentation ................................................................................................................................ 2
Examen de Compilation : Session Normale (16-17) .................................................................. 3
Correction d'examen de Compilation : Session Normale (16-17).............................................. 6
Examen de Compilation : Session Rattrapage (16-17) ............................................................ 13
Correction d'examen de Compilation : Session Rattrapage (16-17) ........................................ 16
Examen de Compilation : Session Normale (17-18) ................................................................ 23
Correction d'examen de Compilation : Session Normale (17-18)............................................ 27
Examen de Compilation : Session Rattrapage (17-18) ............................................................ 32
Correction d'examen de Compilation : Session Rattrapage (17-18) ........................................ 35
Examen de Compilation : Session normale (18-19)................................................................. 40
Correction d'examen de Compilation : Session normale (18-19) ............................................ 43
Examen de Compilation : Session Rattrapage (18-19) ............................................................ 48
Correction d'examen de Compilation : Session Rattrapage (18-19) ........................................ 51

ii
Présentation

Ce document contient des examens de compilation avec corrections proposés dans le cadre du
module Compilation du semestre 5 de la filière Sciences Mathématiques et Informatique (SMI).
Ces examens ont été proposés entre les années 2015 et 2019

2
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique

Examen de Compilation : Session Normale (16-17)

Cours
1) Donner le schéma d’un analyseur syntaxique LR. Préciser le rôle de chaque élément
2) Donner l'arbre abstrait de l'expression : y=a+b+c*d.
Partie 1
Conserver dans (1) à (16) la ou les assertions justes.
1) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur inférieure-ou-égale 1.
c) a une longueur >=0.
2) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
3) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
4) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
5) Un langage est
a) uniquement compilé.
b) uniquement interprété.
c) peut-être combiné de compilé et interprété.
6) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.
7) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.
8) Une expression régulière définit
a) La syntaxe d’un langage
b) Les mots d’un langage.
c) Le lexique d’un langage.
9) Un interpréteur
a) est un traducteur.
b) n'est pas un traducteur.
c) a) ou b) selon le contexte.
10) Un compilateur
a) est un traducteur.
b) n'est pas un traducteur.

3
c) a) ou b) selon le contexte.
11) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
12) Dans un AFD
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
13) Un AFND
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
14) Un analyseur lexical
a) est toujours un programme séparé des autres analyseurs.
b) est toujours un programme intégré aux autres analyseurs.
c) a) ou b) selon le compilateur.
15) Un AFD
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
16) Un AFND
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
Partie 2
Exercice 1
Soit l’expression régulière suivante :
(a | b)*
1) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à cette expression
régulière.
2) En utilisant un algorithme vu dans le cours, transformer l’automate obtenu à la question
précédente en automate fini déterministe.
Exercice 2
Donner la factorisation de la grammaire suivante :
S aAd
S  ab
A ac
Exercice 3
Donner la GHC équivalente à l’expression régulière suivante :
bc+
Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.
2) Construire l’arbre syntaxique issu de la dérivation droite de la chaîne ababab.
Exercice 5
On considère la grammaire suivante :
EFTd

4
Ff
Fε
Tt
T ε
1) Donner la table des premiers et suivants associés à cette grammaire.
2) Construire la table de prédiction de productions.
3) Construire la table d’analyse de prédiction de cette grammaire.
4) Donner le processus de reconnaissance de la chaîne fd.

5
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique

Correction d'examen de Compilation : Session Normale (16-17)

Cours
1) Donner le schéma d’un analyseur syntaxique LR. Préciser le rôle de chaque élément.

Le schéma d'un analyseur LR est donné par :

Description
- Entrée : phrase à analyser,
- Arbre syntaxique ou erreur : l'analyse génère l'arbre d'analyse si la phrase est correcte,
sinon erreur,
- Programme moteur : programme responsable du processus d'analyse en utilisant les tables
d'analyse action et successeur,

- Structure de la table Action,


Action[état][T] prend l’une des valeurs suivantes
- di : décaler(dans entrée) et empiler l’état i
- ri : réduire en utilisant la production i
- vide pour indiquer erreur
- accepter(la chaîne est correcte et fin d'analyse)

- Structure de la table Successeur ou Branchement,


Successeur[état][NT] prend l’une des valeurs suivantes
- état à empiler
- vide pour indiquer erreur

2) Donner l'arbre abstrait de l'expression : y=a+b+c*d.

L'expression préfixe associée à cette grammaire est : =(y,+(+(a,b),*(c,d))). L'arbre abstrait


issu de cette expression est :

6
Partie 1
Conserver dans (1) à (16) la ou les assertions justes.
1) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur inférieure-ou-égale 1.
c) a une longueur >=0.
2) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
3) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
4) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
5) Un langage est
a) uniquement compilé.
b) uniquement interprété.
c) peut-être combiné de compilé et interprété.
6) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.
7) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.
8) Une expression régulière définit
a) La syntaxe d’un langage
b) Les mots d’un langage.
c) Le lexique d’un langage.
9) Un interpréteur
a) est un traducteur.
7
b) n'est pas un traducteur.
c) a) ou b) selon le contexte.
10) Un compilateur
a) est un traducteur.
b) n'est pas un traducteur.
c) a) ou b) selon le contexte.
11) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
12) Dans un AFD
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
13) Un AFND
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
14) Un analyseur lexical
a) est toujours un programme séparé des autres analyseurs.
b) est toujours un programme intégré aux autres analyseurs.
c) a) ou b) selon le compilateur.
15) Un AFD
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
16) Un AFND
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
Partie 2
Exercice 1
Soit l’expression régulière suivante :
(a | b)*
1) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à cette expression
régulière.

Automate de a

Automate de b

Automate de a|b

8
Automate de (a|b)*

2) En utilisant un algorithme vu dans le cours, transformer l’automate obtenu à la question


précédente en automate fini déterministe.

Soit Y le nom de l'automate fini déterministe cherché.


On commence par calculer son état initial y0=↋-f(0)
y0=↋-f(0)={0,1,2,3,6}

Cherchons l'état y1=tr(y0,a)= ↋-f(5)={ 1,2,3,5,6}

Cherchons l'état y2=tr(y0,b)= ↋-f(4)={ 1,2,3,4,6 }

Cherchons l'état y1=tr(y1,a)= ↋-f(5)={ 1,2,3,5,6 }

Cherchons l'état y2=tr(y1,b)= ↋-f(4)={ 1,2,3,4,6 }

Cherchons l'état y1=tr(y2,a)= ↋-f(5)={ 1,2,3,5,6}

Cherchons l'état y2=tr(y2,b)= ↋-f(4)={ 1,2,3,4,6 }

L'ensemble des états est fermé. On trace maintenant l'automate Y qui possède les états :

y0=↋-f(0)={0,1,2,3,6} : état initial et final,

y1=↋-f(5)={ 1,2,3,5,6} : état final,


y2=↋-f(4)={ 1,2,3,4,6 } : état final.

9
Exercice 2
Donner la factorisation de la grammaire suivante :
S aAd
S ab
A ac
La factorisation de cette grammaire consiste à mettre en facteur le symbole "a" dans les
productions :

S aAd
S ab

Cela s'obtient par


S aAd|ab => S a(Ad|b)

En écrivant
S1  Ad|b

on obtient la grammaire cherchée:

SaAS1
S1 Ad|b
Aac

Exercice 3
Donner la GHC équivalente à l’expression régulière suivante :
bc+
La grammaire équivalente bc+ est donnée par
SbC
CCc|c

Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.

La dérivation droite de la chaîne ababab est comme suit (les éléments dérivés sont soulignés)

10
S=>AS =>Abab
=>Ab =>SAbab
=>SAb =>Sabab
=>Sab =>ASabab
=>ASab =>Ababab
=>ababab

2) Construire l’arbre syntaxique issu de la dérivation droite de la chaîne ababab.

L'arbre de dérivation associée à la dérivation droite ci-dessus est à la figure suivante :

Exercice 5
On considère la grammaire suivante :
EFTd
Ff
Fε
Tt
T ε
1) Donner la table des premiers et suivants associés à cette grammaire.
Symbole Premier Suivant
E ftd ↋
F f↋ td
T t↋ d

2) Construire la table de prédiction de productions.

Production Prédiction
EFTd ftd
Ff f
Fε td
Tt t
T ε d

11
3) Construire la table d’analyse de prédiction de cette grammaire.
NT\T f t d
E EFTd EFTd EFTd
F Ff Fε Fε
T Tt Tε

4) Donner le processus de reconnaissance de la chaîne fd.

Le processus de reconnaissance de la chaîne fd est explicité dans le tableau suivant :

pile entrée$ production


$E fd$ E→FTd
$dTF fd$ Ff
$dTf fd$
$dT d$ Tε
$d d$
$ $

12
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique

Examen de Compilation : Session Rattrapage (16-17)


Cours
1) Donner le schéma d’un analyseur syntaxique LL. Préciser le rôle de chaque élément
2) Définir les éléments d’une grammaire hors contexte.
3) Donner l’expression régulière qui définit les chaînes reconnaissables par l’automate suivant :

Partie 1
Conserver dans (1) à (20) la ou les assertions justes
1) Une forme sentence est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.
c) symbole terminaux et/ou d’axiome.
2) La factorisation d’une grammaire consiste
a) à éliminer la récursivité.
b) à éliminer l’ambiguïté.
c) à ajouter une production pour reporter la décision de l’analyseur syntaxique.
3) . Une forme sententielle est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.
c) symbole terminaux et/ou d’axiome.
4) Un axiome
a) dépend uniquement d'AFD.
b) dépend uniquement d'AFND.
c) à la fois a) et b)
5) Le langage du traducteur
a) doit être de bas niveau.
b) doit être de haut niveau.
c) est quelconque.
6) Le langage du traducteur
a) doit être compilé.
b) doit être interprété.
c) est quelconque.
7) Un analyseur syntaxique
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
8) Un langage est
a) uniquement de haut niveau.
b) uniquement de bas niveau.
c) peut-être à la fois a) et b).
9) Un GHC est définie pour
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
10) L'abréviation LR veut dire
a) Last and Reverse.
13
b) Last and Right.
c) Left and Right.
11) L'abréviation LL veut dire
a) Last and Left
b) Left and Last.
c) Left and Left.
12) L'abréviation LL est liée
a) au mode de lecture de la chaîne.
b) au mode de dérivation de la chaine.
c) au mode de formation de la chaîne.
13) Un analyseur lexical utilise
a) uniquement une table de symboles.
b) uniquement une table d’analyse.
c) à la fois une table de symboles et une table d’analyse.
14) Un analyseur lexical
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement au lexique.
15) Un analyseur syntaxique LR
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
16) Un analyseur syntaxique LL
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
17) Un analyseur LL
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
18) Un analyseur LL(1)
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
19) Un analyseur LL(2)
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
20) Un analyseur LR
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.

Partie 2
Exercice 1
1) Donner l’expression régulière représentant les nombres binaires divisibles par 2.
2) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à l'expression trouvée en 1).
3) En utilisant un algorithme vu dans le cours, transformer l’automate obtenu à la question
précédente en automate fini déterministe.
4) Transformer l’expression obtenue en grammaire hors contexte.

Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
S→ Sd
S→ab
14
A→ac
Exercice 3
On considère l’expression régulière suivante :
ab*c
1) Donner la GHC qui lui est équivalente.
2) Faire de même pour l’expression régulière suivante :
ba*
3) En déduire la GHC associée à l’expression régulière suivante :
ab*c| ba*.

Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.
2) Construire l’arbre syntaxique issu de la dérivation droite de la chaîne ababab.

Exercice 5
On considère la grammaire suivante :
S ABBAc
Aa
A ε
Bb
B ε
1) Chercher premiers et suivants des non terminaux.
2) Donner la table de prédiction de productions.
3) Construire la table d’analyse de prédiction de cette grammaire.
4) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.
5) Donner le processus de reconnaissance de la chaîne abc.

15
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique

Correction d'examen de Compilation : Session Rattrapage (16-17)


Cours
1) Donner le schéma d’un analyseur syntaxique LL. Préciser le rôle de chaque élément.

Le schéma de l'analyseur syntaxique LL est donnénpar :

Description
- Entrée$ : représente la phrase ou l'instruction à analyser,
- Pile : contient les terminaux et les non terminaux,
- Table d'analyse : matrice d'analyse qui détermine la production à choisir pour avancer dans le
processus d'analyse,
- Programme contrôleur : programme responsable de l'analyse de la phrase,
- Arbre syntaxique ou erreur : la sortie de l'analyse de la phrase, soit l'arbre d'analyse si la
phrase est correcte, sinon erreur.

2) Définir les éléments d’une grammaire hors contexte.

Les éléments d’une GHC sont :


- Terminaux (T),
- Non-terminaux (NT),
- Productions (P) et
- Axiome(S)

3) Donner l’expression régulière qui définit les chaînes reconnaissables par l’automate suivant :

L'expression régulière associée à cet automate est donnée par

↋|10*1

Partie 1
Conserver dans (1) à (20) la ou les assertions justes
1) Une forme sentence est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.

16
c) symbole terminaux et/ou d’axiome.
2) La factorisation d’une grammaire consiste
a) à éliminer la récursivité.
b) à éliminer l’ambiguïté.
c) à ajouter une production pour reporter la décision de l’analyseur syntaxique.
3) . Une forme sententielle est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.
c) symbole terminaux et/ou d’axiome.
4) Un axiome
a) dépend uniquement d'AFD.
b) dépend uniquement d'AFND.
c) à la fois a) et b)
5) Le langage du traducteur
a) doit être de bas niveau.
b) doit être de haut niveau.
c) est quelconque.
6) Le langage du traducteur
a) doit être compilé.
b) doit être interprété.
c) est quelconque.
7) Un analyseur syntaxique
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
8) Un langage est
a) uniquement de haut niveau.
b) uniquement de bas niveau.
c) peut-être à la fois a) et b).
9) Une GHC est définie pour
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
10) L'abréviation LR veut dire
a) Last and Reverse.
b) Last and Right.
c) Left and Right.
11) L'abréviation LL veut dire
a) Last and Left
b) Left and Last.
c) Left and Left.
12) L'abréviation LL est liée
a) au mode de lecture de la chaîne.
b) au mode de dérivation de la chaine.
c) au mode de formation de la chaîne.
13) Un analyseur lexical utilise
a) uniquement une table de symboles.
b) uniquement une table d’analyse.
c) à la fois une table de symboles et une table d’analyse.
14) Un analyseur lexical
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement au lexique.
15) Un analyseur syntaxique LR
a) utilise une pile.
17
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
16) Un analyseur syntaxique LL
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
17) Un analyseur LL
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
18) Un analyseur LL(1)
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
19) Un analyseur LL(2)
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
20) Un analyseur LR
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.

Partie 2
Exercice 1
1) Donner l’expression régulière représentant les nombres binaires divisibles par 2.

L'expression régulière représentant les nombres binaires divisibles par 2 est donnée par :
(0|1)*0

2) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à l'expression trouvée en 1).

Automate de 0

Automate de 1

Automate de (0|1)

18
Automate de (0|1)*

Automate de (0|1)*0 (automate cherché)

3) En utilisant un algorithme vu dans le cours, transformer l’automate obtenu à la question


précédente en automate fini déterministe.

Soit Y le nom de l'automate fini déterministe cherché.


On commence par calculer son état initial y0=↋-f(0)
y0=↋-f(0)={0,1,2,3,6}

Cherchons l'état y1=tr(y0,0)= ↋-f(5,7)={ 1,2,3,6, 5,7 }

Cherchons l'état y2=tr(y0,1)= ↋-f(4)={ 1,2,3,4,6 }

Cherchons l'état y1=tr(y1,0)= ↋-f(5,7)={ 1,2,3,6, 5,7 }

Cherchons l'état y2=tr(y1,1)= ↋-f(4)={ 1,2,3,4,6 }

Cherchons l'état y1=tr(y2,0)= ↋-f(5,7)={ 1,2,3,6, 5,7 }

Cherchons l'état y2=tr(y2,1)= ↋-f(4)={ 1,2,3,4,6 }

L'ensemble des états est fermé. On trace maintenant l'automate Y qui possède les états :

y0=↋-f(0)={0,1,2,3,6} : état initial

y1=tr(y0,0)= ↋-f(5,7)={ 1,2,3,6, 5,7 } : état final

19
y2=tr(y2,1)= ↋-f(4)={ 1,2,3,4,6 } : état intermédiaire.

4) Transformer l’expression obtenue en grammaire hors contexte.

La grammaire hors contexte cherchée est :


DC0
CCB|B
B0|1

Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
S→ Sd
S→ab
A→ac

La récursivité dans cette grammaire se trouve à la production 1. Pour l'éliminer, on transforme cette
grammaire comme suit :

S→ abS1
S1→dS1|↋
A→ac

Exercice 3
On considère l’expression régulière suivante :
ab*c
1) Donner la GHC qui lui est équivalente.

AaBc
BBb|↋

2) Faire de même pour l’expression régulière suivante : ba*

CbD
DDa|↋

3) En déduire la GHC associée à l’expression régulière suivante : ab*c| ba*.

EA|C

20
AaBc
BBb|↋
CbD
DDa|↋
Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.

La dérivation droite de la chaîne ababab est comme suit (les éléments dérivés sont soulignés)

S=>AS =>Abab
=>Ab =>SAbab
=>SAb =>Sabab
=>Sab =>ASabab
=>ASab =>Ababab
=>ababab

2) Construire l’arbre syntaxique issu de la dérivation droite de la chaîne ababab.

L'arbre de dérivation associée à la dérivation droite ci-dessus est à la figure suivante :

Exercice 5
On considère la grammaire suivante :
S ABBAc
Aa
A ε
Bb
B ε
1) Chercher premiers et suivants des non terminaux.

Symbole Premier Suivant


S abc ε

21
A aε abc
B bε abc

2) Donner la table de prédiction de productions.

Production Prédiction
S ABBAc abc
Aa a
A ε abc
Bb b
B ε abc

3) Construire la table d’analyse de prédiction de cette grammaire.

NT\T a b c
S S ABBAc S ABBAc S ABBAc
A Aa A ε A ε
A ε
B B ε Bb B ε
B ε

4) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.

Cette grammaire n'est pas LL(1), car il existe des cases qui contiennent plusieurs productions.

5) Donner le processus de reconnaissance de la chaîne abc.

Le processus de reconnaissance de la chaîne abc est donné dans le tableau suivant :

pile entrée$ production


$S abc$ S ABBAc
$cABBA abc$ Aa
$cABBa abc$
$cABB bc$ Bb
$cABb bc$
$cAB c$ B ε
$cA c$ A ε
$c c$
$ $

22
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique

Examen de Compilation : Session Normale (17-18)

Partie 1
3) Expliquer l'abréviation LL(1).
4) Donner l'arbre abstrait de l'expression : y=a=b+c*d+n.
5) Compléter le schéma suivant

Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
17) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LR utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.

18) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LL utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.

19) Durant une analyse syntaxique prédictive,


a) la pile peut contenir l'axiome.
b) la pile peut contenir un terminal.
c) la pile peut contenir un non terminal.

20) Durant une analyse syntaxique LR, la colonne action contient


a) uniquement les réductions.
b) uniquement les décalages.
c) à la fois les réductions et les décalages.

21) Le nombre d'états utilisés dans une analyse LR est égal au


a) nombre de terminaux de la grammaire.
b) nombre de non terminaux de la grammaire.
c) Nombre de l'ensemble des terminaux et de non terminaux.

23
22) Une grammaire LR(0) peut être
a) récursive à gauche.
b) récursive à droite.
c) ambiguë.

23) Lors du processus de reconnaissance d'une chaîne en analyse LL, la production à choisir
dépend
a) d'un terminal et d'un non terminal.
b) de deux terminaux.
c) de deux non terminaux.

24) Une grammaire hors contexte


a) doit avoir un terminal.
b) doit avoir un non terminal.
c) a) et b) selon la nature de la grammaire.

25) La définition d'une grammaire hors contexte exige


a) un état initial.
b) un état final.
c) au moins un état intermédiaire.

26) Dans une grammaire hors contexte


a) l'axiome est un terminal.
b) l'axiome est un non terminal.
c) a) et b) selon la nature de la grammaire.

Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABCt
(2) Bb
(3) Cc
(4) C d
6) Indiquer les terminaux, les non-terminaux et l'axiome.

7) Compléter le tableau suivant :

Symbole Premier Suivant


A
B
C

8) Compléter le tableau suivant :

Production Prédiction
ABCt
Bb
Cc
Cd

24
9) Compléter la table d'analyse suivante :

NT\T t b c d
A
B
C

10) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.

11) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne bct.

pile entrée$ production


$A bct$ A
$ $ .......
$ $ .......
$...... $ .......
$...... $ .......
$...... $ .......
$...... $ .......
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
S Sa
Sb

Exercice 3
Soit la grammaire hors contexte suivante :
(1) A → A p B
(2) A → A s B
(3) A → B
(4) B → e
(5) B → f

25
Soit les tables d’analyse LR associée à cette grammaire :

état terminaux Non terminaux


p s e f $ A B
0 d1 d2 3 4
1 r4 r4 r4 r4 r4
2 r5 r5 r5 r5 r5
3 d5 d6 Acc
4 r3 r3 r3 r3 r3
5 d1 d2 7
6 d1 d2 8
7 r1 r1 r1 r1 r1
8 r2 r2 r2 r2 r2
Expliciter le processus de l’analyseur LR sur la chaîne e s e p e.

T entrée S P A

26
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique

Correction d'examen de Compilation : Session Normale (17-18)

Partie 1
1) Expliquer l'abréviation LL(1).

L : Left to right scan

L : Left most derivation

(1) : Un seul symbole lookahead

2) Donner l'arbre abstrait de l'expression : y=a=b+c*d+n.

On fait d'abord la représentation préfixe, puis on la transforme en arbre.

=(y,=(a,+(+(b,*(c,d)),n)))

y =

+
a

+ n

b
*

c d

3) Compléter le schéma suivant

27
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LR utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.

2) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LL utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.

3) Durant une analyse syntaxique prédictive,


a) la pile peut contenir l'axiome.
b) la pile peut contenir un terminal.
c) la pile peut contenir un non terminal.

4) Durant une analyse syntaxique LR, la colonne action contient


a) uniquement les réductions.
b) uniquement les décalages.
c) à la fois les réductions et les décalages.

5) Le nombre d'états utilisés dans une analyse LR est égal au


a) nombre de terminaux de la grammaire.
b) nombre de non terminaux de la grammaire.
c) Nombre de l'ensemble des terminaux et de non terminaux.

6) Une grammaire LR(0) peut être


a) récursive à gauche.
b) récursive à droite.
c) ambiguë.

7) Lors du processus de reconnaissance d'une chaîne en analyse LL, la production à choisir


dépend
a) d'un terminal et d'un non terminal.
b) de deux terminaux.
c) de deux non terminaux.

8) Une grammaire hors contexte


a) doit avoir un terminal.
b) doit avoir un non terminal.
c) a) et b) selon la nature de la grammaire.

9) La définition d'une grammaire hors contexte exige


a) un état initial.
b) un état final.
c) au moins un état intermédiaire.

10) Dans une grammaire hors contexte

28
a) l'axiome est un terminal.
b) l'axiome est un non terminal.
c) a) et b) selon la nature de la grammaire.
Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABCt
(2) Bb
(3) Cc
(4) C d

1) Indiquer les terminaux, les non-terminaux et l'axiome.

- Les terminaux : {t, b, c, d};


- Les non-terminaux : {A, B, C};
- L'axiome : {A}.

2) Compléter le tableau suivant :

Symbole Premier Suivant


A b є
B b c, d
C c,d t

3) Compléter le tableau suivant :

Production Prédiction
ABCt b
Bb b
Cc c
Cd d

4) Compléter la table d'analyse suivante :

NT\T t b c d
A A→BCt
B B→b
C C→c C→d

5) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.

Oui cette grammaire est LL(1), car chaque entrée de sa table d'analyse contient une seule
valeur.

29
6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne bct.

pile entrée$ production


$A bct$ A→BCt
$tCB bct$ B→b
$tCb bct$
$tC ct$ C→c
$tc ct$
$t t$
$ $
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
S Sa
Sb
La grammaire non récursive à gauche associée à la grammaire ci-dessus est donnée par les
productions suivantes :

S→bS1
S1→aS1|ε

Exercice 3
Soit la grammaire hors contexte suivante :
(1) A → A p B
(2) A → A s B
(3) A → B
(4) B → e
(5) B → f

30
Soit les tables d’analyse LR associée à cette grammaire :

état terminaux Non terminaux


p s e f $ A B
0 d1 d2 3 4
1 r4 r4 r4 r4 r4
2 r5 r5 r5 r5 r5
3 d5 d6 Acc
4 r3 r3 r3 r3 r3
5 d1 d2 7
6 d1 d2 8
7 r1 r1 r1 r1 r1
8 r2 r2 r2 r2 r2
Expliciter le processus de l’analyseur LR sur la chaîne e s e p e.

T entrée S P A
0 esepc 0 d1
1 sepc 0,1 r4
4 sepc 4 0,4 r3
3 sepc 4,3 0,3 d6
6 epe 4,3 0,3,5 d1
1 pe 4,3 0,3,6,1 r4
8 pe 4,3,4 0,3,6,8 r2
3 pe 4,3,4,2 0,3 d5
5 e 4,3,4,2 0,3,5 d1
1 $ 4,3,4,2 0,3,5,1 r4
7 $ 4,3,4,2,4 0,3,5,7 r1
3 $ 4,3,4,2,4,1 0,3 ACC

31
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique

Examen de Compilation : Session Rattrapage (17-18)

Partie 1
1) Expliquer l'abréviation LR(0).
2) Donner l'arbre abstrait de l'expression : y=a*b+c/d+n.

Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Un automate fini déterministe est constitué de
a) 3-uplets
b) 4-uplets
c) 5-uplets

2) Un automate fini non déterministe accepte


a) un seul état initial.
b) plusieurs états initiaux
c) 2 états initiaux.

3) Un automate fini non déterministe accepte


a) un seul état final.
b) plusieurs états finaux.
c) 2 états finaux.

4) Le langage d'un traducteur


a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.

5) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.

6) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).

7) Une unité lexicale


a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.

8) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.

32
9) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.

10) Dans un AFD


a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.

Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABtD
(2) Bb
(3) Bc
(4) D d
1) Indiquer les terminaux, les non-terminaux et l'axiome.

2) Compléter le tableau suivant :

Symbole Premier Suivant

3) Compléter le tableau suivant :

Production Prédiction

4) Compléter la table d'analyse suivante :

NT\T b t c d
A
B
D

5) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.

33
6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne ctd.

pile entrée$ production


$ $ ……
$ $ .......
$ $ .......
$...... $ .......
$...... $ .......
$...... $ .......
$...... $ .......
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
A As
At
Ar

Exercice 3
Soit l'automate suivant que l'on nomme A :

A/
1) Donner l'alphabet de l'automate A.

2) Donner la nature de chaque état dans cet automate.

3) Pourquoi cet automate n'est pas déterministe ?

4) Donner la table de transition correspondante à cet automate.

5) Donner en termes d'expressions régulières le langage défini par l'automate A.

B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
1) Calculer y0=ε-f(0).
2) Calculer y1=T(y0,a).
3) Calculer T(y1,a).
4) Construire maintenant l'automate Y dont les états sont les yi trouvés précédemment.

34
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique

Correction d'examen de Compilation : Session Rattrapage (17-18)

Partie 1
1) Expliquer l'abréviation LR(0).

L : Left to right scan

R : Reverse right most derivation

(0) : aucun symbole lookahead

2) Donner l'arbre abstrait de l'expression : y=a*b+c/d+n.

La notation infixe de y=a*b+c/d+n est donnée par


=(y,+(+(*(a,b),/(c,d)),n))

De cette écriture, on trace l'arbre abstrait recherché :

Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Un automate fini déterministe est constitué de
a) 3-uplets
b) 4-uplets
c) 5-uplets

2) Un automate fini non déterministe accepte


a) un seul état initial.
b) plusieurs états initiaux
c) 2 états initiaux.

3) Un automate fini non déterministe accepte


a) un seul état final.
35
b) plusieurs états finaux.
c) 2 états finaux.

4) Le langage d'un traducteur


a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.

5) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.

6) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).

7) Une unité lexicale


a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.

8) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.

9) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.

10) Dans un AFD


a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.

Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABtD
(2) Bb
(3) Bc
(4) D d

1) Indiquer les terminaux, les non-terminaux et l'axiome.

- Terminaux ={b, c, d}
- Non_Terminaux={A, B, D}

36
- Axiome={A}

2) Compléter le tableau suivant :

Symbole Premier Suivant


A b, c ↋
B b, c t
D d ↋

3) Compléter le tableau suivant :

Production Prédiction
ABtD b, c
Bb b
Bc c
Dd d

4) Compléter la table d'analyse suivante :

NT\T b t c d
A ABtD ABtD
B Bb Bc
D Dd

5) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.

Oui, cette grammaire est LL(1) car chaque case de sa table d'analyse contient une seule
production.

6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne ctd.

Le processus de reconnaissance de la chaine ctd est donné par :

pile entrée$ production


$A ctd$ ABtD
$DtB ctd$ Bc
$Dtc ctd$
$Dt td$
$D d$ Dd
$d d$
$ $
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
A As

37
At
Ar

Cette grammaire qui contient une récursivité au niveau de A à la première production, peut
s'écrire :

A As
At|r

Elle devient :
A(t|r) A1
A1sA1

ou encore, après avoir effectué une distribution :


AtA1|rA1
A1sA1

Exercice 3
Soit l'automate suivant que l'on nomme A :

A/
1) Donner l'alphabet de l'automate A.

L'alphabet de l'automate A est donné par :


Alphabet={a}

2) Donner la nature de chaque état dans cet automate.

Etat initial ={0}


Etat final={1}

3) Pourquoi cet automate n'est pas déterministe ?

Cet automate n'est pas déterministe car il contient une transition "↋" entre les états 0 et 1.

4) Donner la table de transition correspondante à cet automate.

La table de transition associée à cet automate est :

Etat\symbole a ↋
0 1
1 1

38
5) Donner en termes d'expressions régulières le langage défini par l'automate A.

L'expression régulière est donnée par : ε|a* qui est équivalente, après réduction à :
a*
B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
1) Calculer y0=ε-f(0).

y0=ε-f(0) ={0,1}.

2) Calculer y1=T(y0,a).

y1=T(y0,a)= ε-f(1)={1}.

3) Calculer T(y1,a).

T(y1,a)= ε-f(1)=y1.

4) Construire maintenant l'automate Y dont les états sont les yi trouvés précédemment.

L'automate Y a deux états :


y0={0,1} qui est à fois état initial et final;
y1={1} qui est aussi un état final.

L'automate Y déterministe cherché est donné par

Cet automate est équivalent suivant :

39
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique

Examen de Compilation : Session normale (18-19)

Partie 1
1) Spécifier les 5 éléments d'un automate.
2) Donner l'arbre abstrait de l'expression : y=b=c+d/n.
3) Quel est l'objectif de l'analyse lexicale dans la compilation ?
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Une expression régulière définit
a) la syntaxe d’un langage
b) les mots d’un langage.
c) le lexique d’un langage.
2) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur ≤ 1.
c) a une longueur quelconque.
3) Un automate fini déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égal à un état final.
4) Un automate fini non déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égale un état final.
5) Un automate fini non déterministe accepte
a) un seul état initial.
b) plusieurs états initiaux
c) 2 états initiaux.
6) Un automate fini non déterministe accepte
a) un seul état final.
b) plusieurs états finaux.
c) 2 états finaux.
7) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
8) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
9) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
10) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
40
c) est synonyme de lexème.

Partie 3
Exercice 1
Soit la grammaire hors contexte suivante :
(1) S if S E
(2) S other
(3) E else S endif
(4) E endif

1) Indiquer les terminaux, les non-terminaux et l'axiome.


T={
NT={
Axiome={

2) Compléter le tableau suivant :

Symbole Premier Suivant


S
E

3) Compléter le tableau suivant :

Production Prédiction
S if S E
S other
E else S endif
E endif

4) Compléter la table d'analyse suivante :

NT\T if other else endif


S
E

5) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.

6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne


if other else if other endif endif

pile entrée$ production


$ if other else if other endif endif $ S
$ $ .......
$ $ .......
$ $ .......
$ $ .......
$ $ .......
$ $ .......

41
$ $ .......
$ $
$ $
$ $

Exercice 2
Soit la grammaire hors contexte suivante :
X → X p Y | X → X s Y |Y
Y → e|f
1) Donner la dérivation droite de la chaine e s e p e.
2) Tracer l'arbre d'analyse associée à cette dérivation.

Exercice 3
Donner l’expression régulière qui définit les chaînes reconnaissables par l’automate suivant :

Exercice 4

En utilisant la technique vue dans le cours, vérifier si les mots suivants font partie du langage
défini par l'automate A:
1) aaddc
2) aaac

Exercice 5
Soit l'automate défini par la table de transition suivante. Il possède 0 comme état initial et 1
comme état final.

Etat/Symbol a b
0 0,1
1 1 1

1) Donner la représentation graphique de cet automate.

Pour transformer cette automate en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
2) Calculer y0=ε-f(0).

3) Calculer y1=T(y0,a).

4) Calculer T(y1,a).

5) Chercher s'il existe d'autres états et construire l'automate Y.

42
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique

Correction d'examen de Compilation : Session normale (18-19)

Partie 1
1) Spécifier les 5 éléments d'un automate.

Un automate fini (AF) est constitué de 5-uplets (E, A, T, I, F), avec

- E=ensemble fini d'éléments appelés des états ;


- A=ensemble de symboles qui forment les mots ou les chaînes=Alphabet ;
- T=fonction de transitions qui associe à chaque paire de E x A un élément de E
T: E x A  E
- I=état initial appartenant à E (début de l'automate);
- F=ensemble non vide des états terminaux ou finaux (terminaison de l'automate).

2) Donner l'arbre abstrait de l'expression : y=b=c+d/n.

On donne d'abord l'écriture préfixe de cette expression :

=(y, =(b,+(c,/(d,n))))

On donne maintenant l'arbre abstrait associée à cette expression :

3) Quel est l'objectif de l'analyse lexicale dans la compilation ?

L'objectif de l'analyse lexicale :


- Première phase du compilateur (fait partie du front-end)
- Lecture du texte caractère par caractère d'un programme source

43
- Regrouper les caractères pour en former des unités lexicales
- Présenter les unités lexicales trouvées à l'analyseur syntaxique

Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Une expression régulière définit
a) la syntaxe d’un langage
b) les mots d’un langage.
c) le lexique d’un langage.
2) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur ≤ 1.
c) a une longueur quelconque.
3) Un automate fini déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égal à un état final.
4) Un automate fini non déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égale un état final.
5) Un automate fini non déterministe accepte
a) un seul état initial.
b) plusieurs états initiaux
c) 2 états initiaux.
6) Un automate fini non déterministe accepte
a) un seul état final.
b) plusieurs états finaux.
c) 2 états finaux.
7) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
8) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
9) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
10) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.

Partie 3
Exercice 1
Soit la grammaire hors contexte suivante :
(1) S if S E
(2) S other
44
(3) E else S endif
(4) E endif

1) Indiquer les terminaux, les non-terminaux et l'axiome.


T={if, other, else, endif}
NT={S, E}
Axiome={S}

2) Compléter le tableau suivant :


Symbole Premier Suivant
S if other ↋ else endif
E else endif ↋ else endif

3) Compléter le tableau suivant :


Production Prédiction
S if S E if
S other other
E else S endif else
E endif endif

4) Compléter la table d'analyse suivante :


NT\T if other else endif
S S if S E S other
E E else S endif E endif

5) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.


Oui, cette grammaire est LL(1), car chaque case de son arbre d'analyse contient une seule
production.

6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne


if other else if other endif endif
Pile entrée$ production
$S if other else if other endif endif $ S if S E
$E S if if other else if other endif endif $
$E S other else if other endif endif $ S other
$E other other else if other endif endif $
$E else if other endif endif $ E else S endif
$endif S else else if other endif endif $
$endif S if other endif endif $ S if S E
$endif E S if if other endif endif $
$endif E S other endif endif $ S other
$endif E other other endif endif $
$endif E endif endif $ E endif
$endif endif endif endif $
$endif endif $
$ $

45
Exercice 2
Soit la grammaire hors contexte suivante :

X → X p Y | X s Y |Y
Y → e|f

1) Donner la dérivation droite de la chaine e s e p e.

X => X p Y
=> X p e
=> X s Y p e
=> X s e p e
=> Y s e p e
=> e s e p e

2) Tracer l'arbre d'analyse associée à cette dérivation.

Exercice 3
Donner l’expression régulière qui définit les chaînes reconnaissables par l’automate suivant :

L'expression régulière associée à cet automate est :

↋|10*1

Exercice 4

En utilisant la technique vue dans le cours, vérifier si les mots suivants font partie du langage
défini par l'automate A ci-dessus :
1) aaddc

Donc la chaine aaddc est bien reconnue car l'état nommé 2 est un état final.

2) aaac

46
Exercice 5
Soit l'automate défini par la table de transition suivante. Il possède 0 comme état initial et 1
comme état final.

Etat/Symbol a b
0 0,1
1 1 1

1) Donner la représentation graphique de cet automate.

Pour transformer cette automate en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
2) Calculer y0=ε-f(0).

…………………………………………………………………………………………

3) Calculer y1=T(y0,a).

…………………………………………………………………………………………..

4) Calculer T(y1,a).

…………………………………………………………………………………………..

5) Chercher s'il existe d'autres états et construire l'automate Y.

47
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique

Examen de Compilation : Session Rattrapage (18-19)

Partie 1
1) Donner un exemple de GHC constituée de trois productions, deux non terminaux et de
trois terminaux.

2) Donner le schéma montrant les différentes phases d'un compilateur.

Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Pour une grammaire hors contexte
a) on doit avoir au moins un terminal.
b) on doit avoir plus de deux terminaux.
c) il n'est pas nécessaire d'avoir de terminaux.
2) Pour une grammaire hors contexte
a) on doit avoir au moins une production.
b) on doit avoir plus de deux productions.
c) il n'est pas nécessaire d'avoir de productions.
3) Une grammaire hors contexte est constituée de
a) 3-uplets.
b) 4-uplets.
c) 5-uplets.
4) Un lexème est un
a) est un terminal.
b) est un non terminal.
c) est une production.
5) Une unité lexicale
a) est un terminal.
b) est un non terminal.
c) est une production.
6) Pour une grammaire hors contexte
a) on doit avoir au moins un axiome.
b) on doit avoir plus de deux axiomes.
c) il n'est pas nécessaire d'avoir d'axiome.
7) Dans une grammaire hors contexte
a) l'axiome est un terminal.
b) l'axiome n'est pas un terminal.
c) (a) ou (b) relativement à la grammaire.
8) Dans une grammaire hors contexte
a) l'axiome est un non terminal.
b) l'axiome n'est pas un non terminal.
c) (a) ou (b) relativement à la grammaire.
9) Dans une grammaire hors contexte
a) une sentence est constituée de terminaux.
b) une sentence est constituée de non-terminaux.
c) une sentence est constituée de terminaux et de non-terminaux.
10) Dans une grammaire hors contexte
48
a) une forme sentencielle est constituée de terminaux.
b) une forme sentencielle est constituée de non-terminaux.
c) une forme sentencielle est constituée de terminaux et de non-terminaux.

Partie 3
Exercice 1
Nous donnons la grammaire hors contexte suivante :
(1) XY
(2) XaY
(3) YYbZ|c
(4) Z d
1) Indiquer les terminaux, les non-terminaux et l'axiome.

2) Compléter le tableau suivant :

Symbole Premier Suivant

3) Compléter le tableau suivant :

Production Prédiction

4) Compléter la table d'analyse suivante(respecter l'ordre alphabétique des éléments de la


grammaire) :

5) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.


6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne
acbdd.

pile entrée$ product


ion
$ $
$ $
$ $
$ $
$ $
$ $
$ $
49
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
A Xa
XXb|c|d

Exercice 3
Soit l'automate A défini par la table de transition suivante. Il possède a comme état initial et b
comme état final.

Etat/Symbol 1 2
a a b
b a,b

A/
1) Pourquoi cet automate n'est pas déterministe ?

2) Donner en termes d'expressions régulières le langage défini par l'automate A.

B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
1) Calculer y0=ε-f(a).

2) Calculer T(y0,1).

3) Calculer T(y0,2).

4) Chercher les autres états de l'automate Y et le construire.

50
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique

Correction d'examen de Compilation : Session Rattrapage (18-19)

Partie 1
1) Donner un exemple de GHC constituée de trois productions, deux non terminaux et de
trois terminaux.

Un exemple de grammaire hors contexte est :


A→aA
A→bB
B→c

Avec
A : axiome, qui est non terminal ;
B : un non terminal ;
a, et c sont des termianaux.

2) Donner le schéma montrant les différentes phases d'un compilateur.

Le schéma général d'un compilateur est donné par le schéma suivant. Pour les détails de
chaque phase, regarder le cours.

51
52
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Pour une grammaire hors contexte
a) on doit avoir au moins un terminal.
b) on doit avoir plus de deux terminaux.
c) il n'est pas nécessaire d'avoir de terminaux.
2) Pour une grammaire hors contexte
a) on doit avoir au moins une production.
b) on doit avoir plus de deux productions.
c) il n'est pas nécessaire d'avoir de productions.
3) Une grammaire hors contexte est constituée de
a) 3-uplets.
b) 4-uplets.
c) 5-uplets.
4) Un lexème est un
a) est un terminal.
b) est un non terminal.
c) est une production.
5) Une unité lexicale
a) est un terminal.
b) est un non terminal.
c) est une production.
6) Pour une grammaire hors contexte
a) on doit avoir au moins un axiome.
b) on doit avoir plus de deux axiomes.
c) il n'est pas nécessaire d'avoir d'axiome.
7) Dans une grammaire hors contexte
a) l'axiome est un terminal.
b) l'axiome n'est pas un terminal.
c) (a) ou (b) relativement à la grammaire.
8) Dans une grammaire hors contexte
a) l'axiome est un non terminal.
b) l'axiome n'est pas un non terminal.
c) (a) ou (b) relativement à la grammaire.
9) Dans une grammaire hors contexte
a) une sentence est constituée de terminaux.
b) une sentence est constituée de non-terminaux.
c) une sentence est constituée de terminaux et de non-terminaux.
10) Dans une grammaire hors contexte
a) une forme sentencielle est constituée de terminaux.
b) une forme sentencielle est constituée de non-terminaux.
c) une forme sentencielle est constituée de terminaux et de non-terminaux.

Partie 3
Exercice 1
Nous donnons la grammaire hors contexte suivante :
(1) XY
(2) XaY
(3) YYbZ|c
(4) Z d

1) Indiquer les terminaux, les non-terminaux et l'axiome.


53
Terminaux={a, b, c, d}
Non terminaux={X, Y, Z}
Axiome={X}

2) Compléter le tableau suivant :

Symbole Premier Suivant


X a, c є
Y c є, b
Z d є, b

3) Compléter le tableau suivant :

Production Prédiction
XY c
XaY a
YYbZ c
Yc c
Zd d

4) Compléter la table d'analyse suivante (respecter l'ordre alphabétique des éléments de la


grammaire) :

a b c d
X XaY XY
Y YYbZ
Yc
Z Zd

5) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.

Cette grammaire n'est pas LL(1), car la cellule (Y,c) contient deux règles.

6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne acbdd.

pile entrée$ production


$X acbdd$ X→aY
$Ya acbdd$
$Y cbdd$ Y→YbZ
$ZbY cbdd$ Y→YbZ
$ZbZbY cbdd$ Y→c
$ZbZbc cbdd$
$ZbZb bdd$
$ZbZ dd$ Z→d
$Zbd dd$
$b d$

54
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
A→ Xa
X→Xb|c|d

X→Xb(c|d) => X→(c|d)X1 et X1→bX1|є.

Donc la nouvelle grammaire est :


A→ Xa
X→(c|d)X1
X1→bX1|є

Exercice 3
Soit l'automate A défini par la table de transition suivante. Il possède a comme état initial et b
comme état final.

Etat/Symbol 1 2
a a b
b a,b
A/
1) Pourquoi cet automate n'est pas déterministe ?

Cet automate n'est pas déterministe car la case (b,1) contient deux états.

2) Donner en termes d'expressions régulières le langage défini par l'automate A.

L'expression régulière recherchée est :

1*(21*)+

B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :

1) Calculer y0=ε-f(a).
y0=ε-f(a)={a}.
C'est l'état initial de l'automate Y.

2) Calculer T(y0,1).
T(y0,1)=ε-f(tr(a,1))= ε-f(a)=y0.

3) Calculer T(y0,2).
T(y0,2)=ε-f(tr(a,2))= ε-f(b)={b}=y1.

4) Chercher les autres états de l'automate Y et le construire.


T(y1,1)=ε-f(tr(b,1))= ε-f(a,b)={a,b}=y2.

T(y2,1)=ε-f(tr((a,b),1))= ε-f(a,b)={a,b}=y2.

T(y2,2)=ε-f(tr((a,b),2))= ε-f(b)={b}=y1.

55
Les états finaux dans l'automate Y sont y1={b} et y2={a, b}.

Donc l'automate fini déterministe Y est donné par :

56

Vous aimerez peut-être aussi