TD Compilation
TD Compilation
TD Compilation
TD Compilation (INF-412)
I. REVISIONS DE THEORIE DES LANGAGES
Exercice 1: Grammaires
Q-1) Soit G la grammaire définie comme suit :
G : S → bA | aB ; A → bAA | aS | a; B → aBB | bS | b
Examiner si les mots suivants appartiennent à L(G), et si oui, donner une dérivation droite,
une dérivation gauche, et l'arbre syntaxique correspondants :
ω1 = bbaaba ; ω2 = babbab ; ω3 = bbaaba
Q-2) Montrer que la grammaire : S → aS | Sa |a est ambiguë et trouver une grammaire
équivalente G' non-ambiguë.
Q-3) Soit G la grammaire sur {a,b} définie comme suit : S → SS | XaXaXa | ε ; X →bX | ε
Montrer que le mot ω = abbaba est dans L(G).
Q-4) On considère la grammaire définie par :
S → aB | bA ; A → a | aS | bAA; B → b | bS | aBB
Examiner si les mots suivants appartiennent à L(G), et si oui, donner une dérivation
droite, une dérivation gauche, et l'arbre syntaxique correspondant :
ω1 = aaabbabbba ω2 = babbab. Existe-t-il une expression régulière décrivant le langage
engendré par G ? Pourquoi ? Si oui, donner cette expression régulière.
Q-5) Quel est le langage engendré par la grammaire :
G : S → AA; A → AAA; A → bA | Ab | a
Déterminer si ce langage est rationnel et si oui, donner un automate d'états finis, une
expression régulière et une grammaire régulière correspondants.
Page 1
Université de Ngaoundéré Année Académique 2021/2022
Faculté des Sciences Master 1 / Semestre 2
Département de Mathématiques et Informatique
TD Compilation (INF-412)
II. ANALYSE ET GRAMMAIRES LL(k)
Exercice -1 Calculer la table d'analyse LL(1) pour :
S → iBae
B → TB | ε
T → [eD] | di
D → ed | ε
TD Compilation (INF-412)
Exercice -8 Itinéraire et analyse syntaxique descendante
On s'intéresse à une grammaire GI des instructions (très simplifiées) délivrées par un
logiciel de calcul d'itinéraire, du style « avancer_100m, au_panneau_Lille_tourner_à_gauche,
avancer_20m, tourner_à_droite ».
On utilise pour ce faire les symboles GO (avancer X_m), TL (turn left), TR (turn right) et PAN
(panneau).
On a GI = {VT ; VN ; route ; P} avec VT = {GO, TL, TR, PAN}, VN = {route , inst , panneau,
turn } et P contient les productions :
route → inst | inst route
inst → GO | panneau turn
turn →TL | TR
panneau →ε | PAN
a) Cette grammaire n'est pas LL(1) : pourquoi ?
b) Donner une grammaire G0 équivalente a GI et qui vous semble LL(1).
c) Calculer les ensembles Premier et Suivant pour G0.
d) Donner la table d'analyse LL(1) de G0. Justifier en utilisant cette table que G0 est une
grammaire LL(1).
e) En suivant les conventions du cours, donner les méthodes (signature et corps) de
l'analyseur récursif descendant qui reconnaissent respectivement le non-terminal
panneau et le non-terminal inst.
f) G0 est-elle une grammaire ambigüe ? Le langage L(G0) est-il algébrique ? régulier ?
Justifier vos réponses.
Exercice -1 Montrer que la grammaire suivante est une grammaire LR(0) en construisant
l'analyseur :
Z → S$; S → A; A → ab; S → SA; A → aSb
Donner une trace de l'analyse de la chaîne "ababab$"
Page 3
Université de Ngaoundéré Année Académique 2021/2022
Faculté des Sciences Master 1 / Semestre 2
Département de Mathématiques et Informatique
TD Compilation (INF-412)
Exercice -4 On souhaite écrire un analyseur ascendant pour reconnaitre le langage ab*c.
Faut-il mieux choisir une grammaire récursive à gauche ou récursive à droite ?
1. Donner les étapes de l'analyse ascendante du mot int int* int int# . Construire l'arbre
de dérivation syntaxique correspondant.
2. Quels terminaux peuvent suivre les symboles non-terminaux T et A dans une dérivation.
3. Les états de l'analyse SLR(1) de cette grammaire sont les suivants:
Page 4