Théorie des langages : Td 1 langages réguliers et expressions régulières
Télécharger PDFUniversité Sidi Mohamed Ben Abdellah
École Nationale des Sciences Appliquées
Année Universitaire : 2019-2020
Module : Théorie des langages
Filière : GINF - 1ère Année
Professeur : [Nom non mentionné]
Correction - TD 1 : Notions fondamentales de la théorie des langages / Langages réguliers et expressions régulières
Exercice 1
1) L = { a2bn | n ≥ 0 } ou L = { (aa)nbn | n ≥ 0 }
2) L = { wn · (w + ε) · wn | w ∈ Σ, n ≥ 0 } ou L = { wn | w ∈ Σ, n ≥ 0 }
3) L = { u · (w + ε) · uR | w ∈ Σ, u ∈ Σ* }
Exercice 2
– ε n'appartient à aucun langage
– a appartient à L2, L3 et L5
– abba appartient à L2
– abbaaac appartient à L4
– aba appartient à L2 et L3
– aabba appartient à L1, L2, L6 et L7
– abb appartient à L2, L3 et L5
Exercice 3
– L2 · L3 = { ab, aba, aab, aaba, b, ba }
– L2 · L1 = L1
– L1 · L3 = { aibj · (a + ε) | i ≥ j − 1 ≥ 1 }
– L5 ∩ L1 = L6
– L6 ∪ L5 = L5
– L1 · (L2 ∩ L4) = L1
– L1 · (L2 ∩ L3) = ∅
– (L1 · L2)R = { (ε + a + aa) · bjai | i ≥ j ≥ 1 }
– (L1)R · (L2)R = { bjai · (ε + a + aa) | i ≥ j ≥ 1 }
Exercice 4
1. Tout langage régulier est infini.
Faux. Par exemple, le langage composé d’un seul mot {ε} est régulier et fini.
2. Tout langage non régulier est infini.
Vrai. Raisonnement par contraposée : tout langage fini est régulier, donc tout langage non régulier est infini.
3. Il y a une infinité de langages réguliers.
Vrai, puisqu’il y a une infinité de langages finis et tout langage fini est régulier.
4. Tout langage inclus dans un langage régulier est régulier.
Faux. Par exemple Σ* sur l’alphabet Σ = {0, 1} est régulier. Cependant, le langage L ⊆ Σ* = { 0n1n | n ≥ 1 } est non régulier.
5. Si L* est régulier alors L est régulier.
Faux. La réciproque est vraie par construction des langages réguliers et de la fermeture de Kleene.
6. Il y a une infinité de langages non réguliers.
Vrai. L’ensemble des langages non réguliers est infini et même non dénombrable.
Exercice 5
(i) (b + ba)* : ε, b, bb, ba, bba, bbb, bbaa, baab, bbba, bbab, baba, bbaaa, bbaab, baab
(ii) ab* + b : a, b, ab, abb, abbb
(iii) (xd + ε)* · d* : ε, d, ad, bd, dd, add, bdd, ddd, adad, adbd, badb, bdad, dadd, ddad, ddd
(iv) a* · (b + c) · d* : b, c, ab, ac, bd, cd, aab, aac, abd, acd, bdd, cdd, aaab, aaac, aabd, aacd, abdd, acdd, bddd, cddd
Exercice 6
(i) (a + b)* : l’ensemble de tous les mots sur l’alphabet Σ, ainsi que le mot ε.
(ii) a(a + b)* : l’ensemble de tous les mots qui commencent par le symbole a.
(iii) (a + b)*a : l’ensemble de tous les mots qui se terminent par le symbole a.
(iv) (aa + b)* : l’ensemble de tous les mots avec un nombre pair de a.
(v) (ab* a + b)* : l’ensemble de tous les mots avec un nombre pair de a.
Exercice 7
1. (a + b)(a + b)
2. ε + (a + b) + (a + b)(a + b) ou ε + (a + b)(ε + a + b) (règles d’équivalence)
3. ((a + b)(a + b))*
4. (a + b)*a(a + b)*
5. (a + b)*aba(a + b)*
6. ab(ab)*
Exercice 8
1. (a + b) + (a + b)(a + b)* + ε* ≡ (a + b) + (a + b)(a + b)* + ε ≡ ε + (a + b) + (a + b)(a + b)* ≡ (a + b) + (a + b)(a + b)* ≡ (a + b)*
2. (x + y)ε + (x + y)ε* + ((x + y)*ε*)* ≡ ε + (x + y)ε* + ((x + y)*ε*)* ≡ (x + y)* ≡ (x + y) + ((x + y)*ε)* ≡ (x + y)*
3. 0(ε + 00)* (1 + 01) + 1 ≡ 0(00)*(1 + 01) + 1(ε + 0)* ≡ 0* ≡ 0(00)* + 0(00)*0 + ε)1(ε + 0)* ≡ 0(ε + 0)* ≡ 0*
FAQ
Qu’est-ce qu’un langage régulier ?
Un langage régulier est un ensemble de mots (chaînes de caractères) qui peut être reconnu par une machine à états finis (automate fini). Il est défini par une expression régulière.
Quelle est la différence entre Σ* et Σ+ ?
Σ* inclut tous les mots possibles sur l’alphabet Σ, y compris le mot vide ε. Σ+ exclut uniquement le mot vide ε.
Pourquoi la fermeture de Kleene est-elle importante ?
La fermeture de Kleene permet de construire des expressions régulières pour décrire des langages infinis à partir de langages finis. Elle inclut les opérations de concaténation, union et itération.