Vous êtes sur la page 1sur 10

Théorie des Langages – TD 1 et 2

A LPHABETS , L ANGAGES ET G RAMMAIRES

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 ;

Exercice 4 - On considère l’alphabet X = {a, b, c}.


1. Calculez les ensembles X 0 , X 1 et X 2
2. Pour chacun des ensembles suivants, caractérisez L1∗ , et calculez L1 ∩ L2 , L1 ∪ L2 , L1 .L2 , L2 .L1
L1 = {ab, bb} et L2 = {a, ab, bbc, ca}
L1 = {ε} et L2 = {bbc, ca}
L1 = 0/ et L2 = {bbc, ca}
L1 = {ab, bb} et L2 = X ∗
3. Soient L1 et L2 .
L1 = {w ∈ X ∗ | |w| = 3n, avec n ∈ N}
L2 = {w ∈ X ∗ | |w| = 5n, avec n ∈ N}
Caractérisez en français les langages L1 ∪ L2 , L1 ∩ L2

Exercice 5 - On considère l’alphabet X = {a, b}, et les langages L1 et L2 suivants :

L1 = {an bn |n ∈ N}
L2 = {bn an |n ∈ N}

Calculez L1 ∪ L2 , L1 ∩ L2 , L1 .L2 , L2 .L1 , L12 .

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 :

L p = {w| |w|est paire}


Li = {w| |w|estimpaire}

1. Montrez que L2p = L p


2. Montrez que L+ ∗
p = L p , puis que L p = L p
3. Montrez que L p .Li = Li .L p = Li
4. Montrez que Li2 = L p \ {ε}, puis que Li∗ = X ∗

Exercice 8 - Soient les langages L1 , L2 et L3 construits sur l’alphabet X = {a, b}. On rappelle que (a + b) =
{a} ∪ {b}.

L1 = {an b(a + b)n , n ∈ N}


L2 = {(a + b)n ban , n ∈ N}
L3 = {(a + b)n b(a + b)n , n ∈ N}

1. Montrez que les langages L1 , L2 et L3 ne sont pas égaux


2. Soit L4 = {(a + b)m ban , m, n ∈ N}. Montrez que L2 6= L4
3. Donnez les grammaires qui engendrent L2 et L4

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.

Exercice 11 - Soit la grammaire G = hV , Σ, P, Si, 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}.

1. Démontrez que cette grammaire est ambigüe


2. Proposez une solution pour lever l’ambiguïté

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é :

Formellement, on définit par récurrence


w0= ε et ∀n ∈ ℕ, wn+1 = wwn

1. w0 = ε, w1= ababc, w2=ww= ababc ababc


2. wq2w= wqqw= ababc caba caba ababc

Pour tout mot w et toute lettre a, on note |w|a le nombre d’occurrences de a dans w.

3. |w|ab=2, |(ab)4|=|(ab)(ab) (ab) (ab) |=|abababab |= 8


4. Les préfixes de q : { ε , c, ca, cab, caba }
Les préfixes propres de q : { ε , c, ca, cab }
Les suffixes de q : { ε , a, ba, aba , caba }
Les suffixes propres de q : { ε , a, ba, aba }

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.

5. (wq)R=( ababc caba ) R=abac cbaba

Remarquons que (wq)R=q R w R

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é :

1. On utilise le raisonnement par l’absurde


C’est évident pour x=  car a≠b
Soit x=x1x2…xn-1 xn et supposons que ax=bx
ax = xb ⟺ a x1x2…xn-1 xn= x1x2…xn-1 xn=b
⟺ a= x1 et x1= x2 et ...et xn-1=xn et xn et b (c’est-à-dire a=x1=x2=x3=…..=xn=b)
Ceci est faux car a≠b , par conséquent on ne peut pas avoir un mot x tel que ax = xb.

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))*

Exercice 4 - On considère l'alphabet X = {a, b, c}.


1. Calculez les ensembles X 0, X 1 et X 2
2. Pour chacun des ensembles suivants, caractérisez L1*, et calculez L1 ∩ L2, L1 ∪ L2, L1. L2, L2. L1
L1 = {ab, bb} et L2 = {a, ab, bbc, ca}
L1 = {ε} et L2 = {bbc, ca}
L1 =∅ et L2 = {bbc, ca}
L1 = {ab, bb} et L2 = X*
3. Soient L1 et L2.
L1 = {w ∈ X *| |w| = 3n, avec n ∈ N}
L2= {w ∈ X ∗| |w| = 5n, avec n ∈ N}
Caractérisez en français les langages L1 ∪ L2, L1 ∩ L2
Corrigé :
1. On a X = {a, b, c}
X0=ε, X1={a,b,c}, X2=X.X={aa, ab, ac, ba, bb, bc, ca, cb, cc}
2. L’étoile (Fermeture de Kleene) d’un langage L, notée L*, est :
L* = {ε} L L2 … Ln …
(a)
L2= {a, ab, bbc, ca}
L1= {ab, bb} , L1*= {}{ab, bb }{abab, abbb, bbab, bbbb}…

L1 peut être caractérisé comme suit :


L1 est l’ensemble de tous les mots de longueur paire (2n, n ∈ ℕ) tels que aa et ba ne sont ni des
suffixes ni des préfixes.

L1 ∪ L2= {ab, bb}{a, ab, bbc, ca}={ab, bb, a, bbc, ca }


L1 ∩ L2= {ab, bb}∩{a, ab, bbc, ca}={ab}
L1. L2={aba, abab , abbbc , abca, bba , bbab, bbbbc, bbca }
L2. L1={aab, abb, abab, abbb, bbcab, bbcbb, caab, cabb }

(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*

Exercice 5 - On considère l’alphabet X = {a,b}, et les langages L1 et L2 suivants :

L1 = {anbn|n ∈ N}
L2 = {bnan|n ∈ N}

Calculez L1 ∪ L2, L1 ∩ L2, L1.L2, L2.L1, L12.

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}

L1 ∩ L2={anbn|n ∈ N}∩{bnan|n ∈ N}={ε }

n n m m
L1.L2= { a b b a |n,m ∈ N}

L2.L1= { bnan ambm |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,

voir page 27 du cours)

L1 ⊆ L2 ⇒ L1∪ L2= L2

⇒ L. (L1∪ L2)= L. L2 (on multiplie par L les deux parties de l’égalité)

⇒ L. L1 ∪ L. L2= L. L2 (Le produit de langages est distributif par rapport à l'union)

⇒ L.L1 ⊆ L.L2

Exercice 7 - On considère des langages sur un alphabet X quelconque. Soient les deux langages
suivants :

Lp = {w| |w| est paire}


Li = {w| |w| est impaire}

1. Montrez que L2p = Lp


+ ∗
2. Montrez que L p = Lp, puis que L p = Lp
3. Montrez que Lp.Li = Li.Lp = Li
4. Montrez que Li2 = Lp \{}, puis que Li = X
∗ ∗
Corrigé :
1. soit Lp = { w, |w| paire}, ensemble des mots de longueur paire, et Li = {w, |w| impaire}

Lp.Lp = {w.w, pour tout w Є Lp}


On a |w.w| = |w|+|w| = 2|w|, donc Lp.Lp ={w, |w| paire}= Lp
2. Lp+ : = Lp .
j
Montrons que Lp = Lp
– Elle est vrai pour j = 1, soit Lp1= Lp.
– Supposons que c’est vrai pour j, soit Lpj = Lp et montrons que c’est vrai pour j+1, soit
j+1 j
Lp = Lp .Lp = Lp.Lp (hypothèse de récurrence) = Lp (solution de la question 1).

– donc pour tout j, Lpj = Lp et par conséquent Lp+ = Lp.


Comme ||=0 et 0 est un nombre pair on a aussi Lp* = Lp.

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

Pour n=0, w1=a0b(a+b)0=b∈ L1, w2=(a+b)0ba0=b∈ L2


Pour n=1, w1=a1b(a+b)1=aba+abb∈ L1, w2=(a + b)1ba1=aba+bba∈ L2
aba+abb≠ aba+bba donc L1 et L2 ne sont pas égaux.
2.
On procède de la même manière, les longueurs des mots w1 ∈ L2 et w2 ∈ L4 à comparer doivent
avoir la même longueur
L2 = {(a + b)nban, n ∈ N}
L4 = {(a + b)pbaq, p, q ∈ N}.
Les longueurs des mots à comparer sont tels que 2n+1=p+q+1
Pour n=p=q=0, w1=(a + b)0ba0=b∈ L1, w2=(a + b)0ba0=b
Pour n=1, w1=(a + b)1ba1=aba+bba ∈ L2, on a trois possibilités : p=1 et q=1 ou bien p=2 et
p=0 ou bien
Pour p=1 et q=1, (a + b)1ba1=aba+bba ∈ L2, w1=w2
2 0 0
Pour p=2 et q=0, (a + b) ba =(aa+ab+ba+bb)ba =(aa+ab+ba+bb)b=aab+abb+bab+bbb∈ L2,
w1≠w2 donc L2≠L4

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).

aa possède deux arbres de dérivations :

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}.

1. Démontrez que cette grammaire est ambigüe


2. Proposez une solution pour lever l'ambiguïté
Rappel : Une grammaire G est ambigüe s'il existe un mot de L(G) qui a au moins deux dérivations
LPG (La Plus à Gauche) à partir de S (et donc deux arbres de dérivation).
Dans le cas contraire G est non ambigüe.

« if b then if b then a else a» a deux arbres de dérivation . La grammaire G est DONC ambigüe

S S

If b then S if b then S else S

If b then S else S if b then S a

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.

Dans le cas général si on a A → αβ1/αβ2, on la remplace par A→αA’ et A’→β1/β2.


Cette modification s’appelle factorisation à gauche.

Vous aimerez peut-être aussi