IUT-A, département Informatique

Transcription

IUT-A, département Informatique
TD 14
Département Informatique
Graphes et langages
M2201
2015–2016
Dans ce TD, on introduit les premières notions autour des grammaires.
Exercice 1 : Grammaires et Automates
Soit la grammaire G = ({a, b, c}, {S, X}, S, Π), avec
Π = {S → XabX, X → aX|bX|cX|}
et soit m0 = (ab)2 (cb)2
Q1 : Donnez deux arbres de dérivation du mot m0 dans G’. Que pouvez-vous dire de G ?
Q2 : Le mot a4 cb est-il dérivable dans G ?
Q3 : Donnez un AF non déterministe de langage L(G).
Q4 : Construisez un AFd minimal de langage L(G).
Q5 : Déduisez de Q4 une grammaire G’ de langage L(G’)=L(G) dont les règles sont du type X → m ou
X → mY , avec m ∈ Σ∗T et X, Y ∈ ΣN T , i.e. une grammaire linéaire droite.
Q6 : Donnez dans G’ une dérivation du mot m0 . Existe-t’il dans G’ d’autres dérivations possibles du mot
m0 ? Que pouvez-vous dire de G’ ?
Exercice 2 : Quatre grammaires
Soient les quatre grammaires :
G1 = ({a, b}, {S, X, Y }, S, {S → XabY, X → bX|b, Y → aY |bY |})
G2 = ({a, b}, {S}, S, {S → aS|bS|a|b})
G3 = ({a, b}, {S, X, Y }, S, {S → X|Y, X → , Y → aY |bY |a|b})
G4 = ({a}, {S}, S, {S → aS|})
et les quatre langages
E1 = a∗ , E2 = {a, b}∗ , E3 = {a, b}+ , E4 = b∗ bab{a, b}∗ .
Q7 : Attribuez à chaque grammaire son langage.
Exercice 3 : Un langage simple
Soit Σ = {a, b}. Soit L le langage des mots sur Σ dont la première et la dernière lettre sont distinctes.
Q8 : Donnez une expression régulière du langage L.
Q9 : Donnez un AF non déterministe pour L.
Q10 : Donnez une grammaire régulière qui engendre L.
Q11 : Donnez un AFd minimal de langage L.
Q12 : En déduire une autre grammaire régulière qui engendre L.
Q13 : Donnez une grammaire pour L qui ne comporte que deux variables (dont l’axiome).
Exercice 4 : Grammaires algébriques
Q14 :
G1
G2
G3
G4
Donnez le langage engendré par chacune des grammaires suivantes :
= ({a, b, c}, {A, X}, X, {X → Ac|c, A → aAb|ab})
= ({a, b, c}, {A, B, C}, A, {A → aB|C, B → aAb, C → cC|c|})
= ({a, b}, {S, X}, S, {S → XaaX, X → aX|bX|})
= ({a, b, c}, {S, B, C}, S, {S → aB|C|, B → aSb, C → cC|c})
Exercice 5 : Deux grammaires simples
Soient G1 et G2 les deux grammaires suivantes
G1 = ({a, b, c}, {S}, S, {S → aSb|c})
G2 = ({a, b, c, d, e}, {S, X}, S, {S → aSb|X|c, X → eXd|})
Q15 : Donnez tous les mots de longueur inférieure ou égale à 5 dérivés par la grammaire G1 .
Q16 : Donnez tous les mots de longueur inférieure ou égale à 5 dérivés par la grammaire G2 .
Q17 : Démontrez que L(G1 ) = {an cbn ; n ≥ 0}.
Q18 : Montrez que L(G1 ) ⊂ L(G2 ).
Q19 : Quel est le langage L(G2 ) ?
Exercice 6 : Construction de grammaires
Q20 : Déterminez des grammaires pour chacun des langages suivants :
L1 = {ap bq : p > 0, q > 2}
L2 = {ap bq : p > 12, q > 15}
Exercice 7 : Réduction de grammaire
Soit la gramme G1 = ({a, b, c}, {S, A, B, C}, S, Π), où Π est la liste de règles suivantes :
S → aB|bc
B → aSB|bBC
A → BAc|bSC|a
C → SBc|aBC|ac
Q21 : Simplifiez G1 en supprimant le plus possible règles inutiles, sans changer le langage généré.
On notera G2 la nouvelle grammaire obtenue.
Q22 : Déterminez un AFd reconnaissant L(G1 )
Exercice 8 : Grammaires algébriques
Q23 : Étudiez les langages dont les règles de réécriture sont les suivantes.
G1 :
S → SX
SX → BS
BS → ab
B → a
X → c
G2 :
S → aaS|aa
G3 :
S → aS|bX
X → bS|c
G4 :
S → aaS|a|b
G5 :
S → aX
X → bS|a
Exercice 9 : Ambiguïté
Soit la grammaire G = {x, y}, {S}, S, Π), où Π = {S → xSy|xS|}.
Q24 : Déterminez L(G).
Q25 : Montrez que le mot x2 y peut être obtenu de deux manières distinctes.
Q26 : Proposez une grammaire non ambigüe produisant le même langage que G.

Documents pareils