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.