THL Serie1 2015
THL Serie1 2015
THL Serie1 2015
SÉRIE D’EXERCICES no 1
EXERCICE 1 :
Soit le mot x = ((acbc)R.baca)R (αR désigne le reflet miroir de α)
1) Donner la chaîne de caractères à laquelle x est égal.
2) Quelle est la valeur de |x|, |x|a, |x|b et |x|c ?
3) Donner un préfixe propre de x contenant au moins deux lettres ‘c’.
4) Donner un suffixe propre de x contenant une seule lettre ‘a’.
EXERCICE 3 : Pour chacune des grammaires Gi = ({a, b, c} , {S, A, R, T} , S , Pi), (i=1,..,5) ; donner le
type de celle-ci, puis trouver le langage engendré par chacune d’elles :
1) P1 : S → bA ; A → aA | ε
2) P2 : S → aSc | A
A → bAc | ε
3) P3 : S → aSbS | ε
4) P4 : S → aRbc | abc
R → aRTb | aTb ; Tb → bT ; Tc → cc
5) P5 : S → aAb | ε
A → aSb
Ab → ε
EXERCICE 4 : Pour chacun des langages suivants, donner une grammaire qui l’engendre :
a) L1 = { 02n / n ≥ 0 } f) L6 = { am bn an bm / n ≥ 1, m ≥ 1 }
b) L2 = { 0n 1n / n ≥ 0 } g) L7 = { w {a, b}+ / |w| ≡ 0[3] }
c) L3 = { an b2n / n ≥ 0 } h) L8 = { 0i 1j / i ≥ j ≥ 0 }
d) L4 = { an bm / n ≤ m ≤ 2 n } i) L9 = { 0i 1j / i ≠ j, i ≥ 0, j ≥ 0 }
n
e) L5 = { 0n w wR 1n / n ≥ 0 , w {a, b}* } j) L10 = { a2 / n ≥ 0 }
EXERCICE 5 : Soit L un langage de type i {0, 1, 2, 3}. Est-il possible qu’un langage L’ L
ne soit pas de type i ?
indication : on sait que le langage { 0n1n / n ≥ 0 } n’est pas régulier.
EXERCICE 11 : Ecrire une grammaire pour générer les identificateurs d’un langage comme Pascal. On
considérera qu’un identificateur est valide s’il commence par une lettre alphabétique (majuscule
ou minuscule) qui peut éventuellement être suivie d’une ou plusieurs lettres alphabétiques et/ou chiffres.
Pour ce qui est des non terminaux de cette grammaire on pourra utiliser par exemple <Id1>, <Id2>,
<Id3>, <Lettre>, <Chiffre>, …
EXERCICE 12 : Soit L le langage défini sur l’alphabet π = {a, b, c, #} comme suit : L = { an b cn # / n≥0 }.
L peut être engendré par la grammaire suivante : G = (π, {S, A}, S, P) où P est donné par :
S → A#
A → aAc | b
On demande d’écrire, à partir de G, un programme Pascal qui lit des chaînes de caractères et détermine
si elles appartiennent à L ou non.
Indication : associer à chaque non terminal de G une procédure Pascal.