Théorie Des Langages - TD 1 Et 2: Ababc Et Q Caba
Théorie Des Langages - TD 1 Et 2: Ababc Et Q Caba
Théorie Des Langages - TD 1 Et 2: Ababc Et Q Caba
Exercice 1 - On considère l’alphabet X = {a, b, c}. On rappelle que |w| représente la longueur du mot w, et ε
représente le mot vide. Soit deux mots w = ababc et q = caba.
1. Calculez w0 , w1 et w2
2. Calculez wq2 w
3. Calculez |w|ab , |(ab)4 | et |(ab)4 |aba
4. Donnez les préfixes, les préfices propres, les suffixes et les suffixes propres de q
5. Donnez le miroir du mot wq.
Exercice 2 -
1. Montrez qu’il ne peut y avoir de mot x tel que ax = xb.
2. Quels sont les deux langages dont la fermeture par l’étoile donne le langage uniquement composé du mot
vide ε ?
3. Les mots suivants sont-ils générés par le langage (ab∗ )b∗ : ε, a, aa, ba, abbb, ababb, baba ? Même question
avec le langage (ab)∗ b∗ .
Exercice 3 - On considère l’alphabet X = {a, b}. Donner les langages correspondant aux propriétés suivantes :
1. les mots qui ne contiennent aucun b ;
2. les mots qui ne contiennent pas ab ;
3. les mots qui contiennent au moins un a ;
4. les mots de longueur paire ;
L1 = {an bn |n ∈ N}
L2 = {bn an |n ∈ N}
1
Exercice 6 - On considère des langages sur un alphabet quelconque.
1. Démontrez les propriétés suivantes :
L1 ⊆ L2 ⇒ L.L1 ⊆ L.L2
L.(L1 ∪ L2 ) = L.L1 ∪ L.L2
2. Montrez que L.(L1 ∩ L2 ) ⊆ L.L1 ∩ L.L2 . A l’aide d’un contre-exemple, montrez que l’égalité n’est pas
forcément atteinte.
3. Montrez que (L1 ∩ L2 )∗ ⊆ L1∗ ∩ L2∗ . A l’aide d’un contre-exemple, montrez que l’égalité n’est pas forcément
atteinte.
Exercice 7 - On considère des langages sur un alphabet X quelconque. Soient les deux langages suivants :
Exercice 8 - Soient les langages L1 , L2 et L3 construits sur l’alphabet X = {a, b}. On rappelle que (a + b) =
{a} ∪ {b}.
Exercice 9 - Soit la grammaire G = hV , Σ, P, Si, avec V = {a, b, S}, Σ = {a, b} et P = {S → aSa; S → bSb; S → ε}.
1. Soit G′ = hV , Σ, P′ , Si, avec P′ = P ∪ {S → SS}. Montrez que aabaab ∈ L (G′ ). Montrez ensuite que G′ est
ambigüe.
2. Quel est le langage engendré par G ? Démontrez
3. Pourquoi G n’est pas ambigüe ?
Exercice 10 - Proposez une grammaire qui permet d’engendrer les formules de la logique des propositions.
2
Théorie des Langages – TD 1 et 2
ALPHABETS, LANGAGES ET GRAMMAIRES
Exercice 1 - On considère l'alphabet X = {a, b, c}. On rappelle que |w| représente la longueur du mot w, et
représente le mot vide. Soit deux mots w = ababc et q = caba.
1. Calculez w0, w1 et w2
2. Calculez wq2w
4 4
3. Calculez |w|ab, |(ab) | et |(ab) |aba
4. Donnez les préfixes, les préfixes propres, les suffixes et les suffixes propres de q
5. Donnez le miroir du mot wq.
Corrigé :
Pour tout mot w et toute lettre a, on note |w|a le nombre d’occurrences de a dans w.
Le miroir d’un mot w ∈ V*, noté wR, est le mot obtenu en inversant l’ordre des lettres de w. Autrement
dit, si w s’écrit w = w1…wn sur V, alors wR = wn …w1.
Un palindrome est un mot w tel que w = wR.
Exercice 2 -
1. Montrez qu'il ne peut y avoir de mot x tel que ax = xb.
2. Quels sont les deux langages dont la fermeture par l'étoile donne le langage uniquement composé du mot
vide ?
∗ ∗
3. Les mots suivants sont-ils générés par le langage (ab )b : , a, aa, ba, abbb, ababb, baba ? Même
∗ ∗
question avec le langage (ab) b .
Corrigé :
2. Il y a :
– L = {ε} (le langage ayant un seul élément, le mot vide) qui donne bien L* = {ε} ;
– mais également L = ∅ car, par définition, la fermeture par l’étoile contient le mot vide (formé de zéro
mot de L). (Voir la page 28 du cours sur la fermeture de Kleene)
∗ ∗
3. Les mots générés par le langage (ab ) b : , a, abbb
∗ ∗
Les mots générés par le langage (ab) b : , abbb, ababb
Exercice 3 - On considère l'alphabet X = {a, b}. Donner les langages correspondant aux propriétés suivantes :
1. les mots qui ne contiennent aucun b ;
2. les mots qui ne contiennent pas ab ;
3. les mots qui contiennent au moins un a ;
4. les mots de longueur paire ;
Corrigé :
1. a*
2. b*a*
3. (a + b)*a(a + b)*
4. ((a + b)(a + b))*
(b)
Même chose pour L1 = {ε} et L2 = {bbc, ca}
(c)
Même chose pour L1 = {ε} et L2 = {bbc, ca}
(d)
Même chose pour L1 = ∅ et L2 = {bbc, ca}
(e)
Même chose pour L1 = {ab, bb} et L2 = X*
L1 = {anbn|n ∈ N}
L2 = {bnan|n ∈ N}
Corrigé :
n n n n n n n n
L1 ∪ L2={a b |n ∈ N}∪{b a |n ∈ N}= { a b ou b a |n ∈ N}
n n m m
L1.L2= { a b b a |n,m ∈ N}
2 n n m n
L1 = { a b a bm |n,m ∈ N}
Exercice 6 - On considère des langages sur un alphabet quelconque.
1. Démontrez les propriétés suivantes :
L1 ⊆ L2 ⇒ L.L1 ⊆ L.L2
L.(L1 ∪ L2 ) = L.L1 ∪L.L2
2. Montrez que L.(L1 ∩ L2 ) ⊆ L.L1 ∩ L.L2. A l'aide d'un contre-exemple, montrez que l'égalité n'est pas
forcément atteinte.
∗ ∗ ∗
3. Montrez que (L1 ∩L2) ⊆ L1 ∩L2 . A l'aide d'un contre-exemple, montrez que l'égalité n'est pas
forcément atteinte.
Corrigé :
On peut définir l'inclusion au sens large à partir de l'intersection ou de la réunion :
A ⊆ B si et seulement si A ∩ B = A ;
A ⊆ B si et seulement si A ∪ B = B.
On a
L.L1 ⊆ L.L2 ⟺ L. L1 ∪ L. L2
⟺ L.( L1∪ L2) (Le produit de langages est distributif par rapport à l'union,
L1 ⊆ L2 ⇒ L1∪ L2= L2
⇒ L.L1 ⊆ L.L2
Exercice 7 - On considère des langages sur un alphabet X quelconque. Soient les deux langages
suivants :
3. Pour tout w, w ∈ Lp.Li, il existe u ∈ Lp et v ∈ Li tels que w= u.v, comme on a |w| = |u|+|v| (la somme
d’un nombre paire et d’un nombre impaire est nombre impaire, |w| est impaire et par conséquent
Lp.Li = Li ={w| |w| est impaire}
Li.Lp = Li (même chose)
Exercice 8 - Soient les langages L1, L2 et L3 construits sur l'alphabet X = {a, b}. On rappelle que (a + b) =
{a}∪{b}.
L1 = {anb(a + b)n, n ∈ N}
n n
L2 = {(a + b) ba , n ∈ N}
n n
L3 = {(a + b) b(a + b) , n ∈ N}
1. Montrez que les langages L1, L2 et L3 ne sont pas égaux
2. Soit L4 = {(a + b)mban, m, n ∈ N}. Montrez que L2 ≠ L4
3. Donnez les grammaires qui engendrent L2 et L4
Corrigé :
1.
Il faut savoir que pour n les longueurs des mots de L1 et L2 sont égaux à 2n+1
Il suffit de trouver w1 ∈ L1 et w2 ∈ L2, de même longueur tel que w1≠w2
Exercice 9 - Soit la grammaire G = (V , Σ, P, S), avec V = {a, b, S}, Σ = {a, b} et P = {S → aSa; S → bSb;
S → ε}.
1. Soit G′ = (V, Σ, P′, S), avec P′ = P ∪{S → SS}. Montrez que aabaab ∈ L(G′). Montrez ensuite que G′ est
ambigüe.
2. Quel est le langage engendré par G ? Démontrez
3. Pourquoi G n'est pas ambigüe ?
Corrigé :
Montrons que aabaab ∈ L(G′).
S → SS→ aSaS→aaS→ aabSb→ aabaSab→ aabaab
Rappel : Une grammaire G est ambiguë s'il existe un mot de L(G) qui a au moins deux dérivations LPG à partir
de S (et donc deux arbres de dérivation).
S S
S S S S
La grammaire G′ est ambiguë
ε a S a a S a ε
ε ε
Exercice 10 - Proposez une grammaire qui permet d'engendrer les formules de la logique des propositions.
Corrigé :
Grammaire de la logique propositionnelle
Alphabet de la logique des propositions
Symboles de variables: P, Q, R, …
Connecteurs unaire : ¬.
Connecteurs binaires : ∧, ∨, ⇒, ⟺.
Axiome : P (Comme Proposition)
Règles :
P → ¬P
P → (P)
P → P∧P
P → P∨P
P → P ⇒P
P → P⟺P
P → P/Q/R/ ...
Exercice 11 - Soit la grammaire G = (V, Σ, P, S), avec V = {if, then, else, a, b, S}, Σ = {if, then, else, a, b} et
P = {S → if b then S else S ; S → if b then S ; S → a}.
« if b then if b then a else a» a deux arbres de dérivation . La grammaire G est DONC ambigüe
S S
a a a
2) L’ambiguïté vient du fait qu’il existe tout au début deux dérivations. On peut choisir l’une comme on
peut choisir l’autre.