Vous êtes sur la page 1sur 81

Théorie des langages

Préparé par O.Diouri et D. Chiadmi


Mis à jour par D. Chiadmi
Ecole Mohammadia d’Ingénieurs
Février 2011
date Contenu Devoir
S15 Férié
S16 Mer. 23/2/11 Ch1 - Langages : vocabulaire, chaînes, concaténation, langages,
expressions régulières
Ch2/1- Systèmes de réécriture : grammaires, dérivation,
définition des langages, langage engendré par une grammaire
Jeu. 24/2/11 Ch2/2- Systèmes de réécriture : Classes de grammaires,
formalisme, Arbres de dérivation, Ambiguïté, Décidabilité,
Exemple : Grammaires Expr arithmétique
S17 Mer. 2/3/11 Ch3/1 - Automates finis
Jeu. 3/3/11 Ch3/2 - Automates finis : Automates déterministes, minimaux Travail à
rendre
S18 Mer. 9/3/11 Ch4- Langages réguliers et langages d’état fini : automate ⇔
ER
Jeu.10/3/11 Ch5- Définitions des langages par récurrence : langage ⇔ Remise du
grammaire devoir
Ch6 – Automates à piles

S19 Mer. 19/3/11 Contrôle continu


2
Chapitre 1: Langages
1. Vocabulaire, chaînes
 Vocabulaire ou alphabet : un ensemble fini d’éléments
Éléments : lettres, caractères ou symboles // x , ‫ت‬, ۩, ▲, ■
# V : Cardinal du vocabulaire V // V = {۩, ▲, ■} ; # V = 3

 Chaîne est une suite éventuellement vide d’éléments d’un


vocabulaire // mot ou phrase

Ex : aba est une chaîne de V = {a, b}


۩▲ ۩ ■ est une chaîne de V = {۩, ▲, ■}
début x:=1 fin est une chaîne de V = {début, fin, :=, 1, x,’ ‘}

Rq : ambiguïté entre chaînes du vocabulaire


Ex: V= {a, aa} a aa avec aa a

EMI D. Chiadmi - Théorie des langages – S4 – 2011 3


A. Notations
V0 = {ε} où ε est la chaîne vide
V1 = V // Si V = {a} alors V1 = {a }
V* = ∪ Vi i ≥0 // Si V = {a} alors V* = {ε, a, aa, aaa, …}
V+= ∪ Vi i >0 // Si V = {a} alors V+ = {a, aa, aaaa, …}
|x| : longueur d’une chaîne x // | ۩▲ ۩ ■ | = 4
Vn : ensemble des chaînes sur V de longueur n

B. Sous chaîne
u sous chaîne de w si ∃ x, y ∈ V* tel que w = x u y
u préfixe de w si x = ε
u suffixe de w si y = ε

EMI D. Chiadmi - Théorie des langages – S4 – 2011 4


C. Opération sur les chaînes
Concaténation de x et y notée . donne x.y ou y.x
Propriétés : associative - ∀ x, y, z ∈ V* x.(y.z) = (x.y).z
admet un élément neutre ε - ∀ x ∈ V* x.ε = ε.x = x

2. Langages
• Un langage sur un vocabulaire V est tout sous ensemble de V*

• Propriétés : Un langage L est infini ssi ∀n ∈ N, ∃ x ∈ L | |x| > n

EMI D. Chiadmi - Théorie des langages – S4 – 2011 5


Opérations sur les langages : Soient L, L1, L2 langages sur V
ensemblistes - L1 ∪ L2 : réunion
L1 ∩ L2 : intersection
L1 \ L2 : différence
L= V* \ L : complémentaire
Concaténation - L1.L2 = {x.y / x ∈ L1 et y ∈ L2} //Associative

Puissance - L0 = {εε} // langage Ø ≠ langage {εε}


∀ n > 0 Ln =L. Ln-1 = L.L…L n fois

Concaténation itérée ou opérateur de Kleene


L*= ∪ Ln n ≥ 0 et L+ = ∪ Ln n > 0
{a }* ≅ a* et ε ≅ {εε} // abus de langage
EMI D. Chiadmi - Théorie des langages – S4 – 2011 6
Expression de langage ?
• Comment exprimer un langage ?
– Si petite taille : donner le vocabulaire et les
chaînes le constituant
– Si grande taille : (1) donner le vocabulaire , (2)
impossible de donner l’ensemble des chaînes

formalisme ou système de réécriture :


expressions régulières, grammaires

EMI D. Chiadmi - Théorie des langages – S4 – 2011 7


Expression de langage ?
Comment reconnaître qu’une chaîne appartient au langage ?
Comment distinguer entre les chaînes du langage et les
autres chaînes du vocabulaire V ?

Construction d’un algorithme de


reconnaissance du langage

EMI D. Chiadmi - Théorie des langages – S4 – 2011 8


3. Expressions régulières

Ø Est une ER décrivant le langage Ø // V : vocabulaire


ε Est une ER décrivant le langage {εε}
Tout a ∈ V est une ER décrivant le langage {a}
Soit r et s 2 ER décrivant le langage R et Salors
- r + s est une ER décrivant le langage R ∪ S
- r.s est une ER décrivant le langage RS
- r* est une ER décrivant le langage R*= ∪ Rn n≥0

Ex: (A+B+…+Z+a+b+…+z).(A+B+…+Z+a+b+…+z+0+1+…+9)*
le langage défini par cette ER (valeur de l’expression régulière) est le
langage des identificateurs C

EMI D. Chiadmi - Théorie des langages – S4 – 2011 9


Chapitre II.
Systèmes de réécriture: grammaires
Systèmes de réécriture
Grammaires
Langages engendrés par une grammaire
Formalisme pour définir un langage de programmation
Ambiguité

EMI D. Chiadmi - Théorie des langages – S4 – 2011 10


A- Système de réécriture : Formalisation

1. Définition:
S = <V, R> où S est le système de réécriture , V est un
vocabulaire et R un ensemble fini de couples de chaînes sur V

(α, β) ∈ R est une règle de réécriture notée :


α→β
partie gauche partie droite
Les règles
α → β1
α → β2 α → β1 | β2 |…| βk
………
α → βk

EMI D. Chiadmi - Théorie des langages – S4 – 2011 11


2. Relations
Définition: Relation ρ sur E = toute partie de E × E
Pour x, y ∈ E
ρ est vraie pour (x, y) SSI (x,y) ∈ ρ ou x ρ y
Ex: ∅ est la relation partout fausse sur E
E × E est la relation partout vraie sur E
ιE est la relation unité ou identité sur E = {(x , x) / x ∈E } ( ’=‘ )
Une relation ρ est réflexive si ∀ x∈E xρx
et transitive si ∀x,y,z ∈ E (xρy et yρz) ⇒ xρz
Alors : relation de préordre
ρ est symétrique si ∀x,y ∈E xρy ⇒ yρx
Une relation de préordre symétrique ⇒ relation d’équivalence
antisymétrique ⇒ relation d’ordre partiel

EMI D. Chiadmi - Théorie des langages – S4 – 2011 12


Opérations sur les relations:

Les relations étant des parties de E × E : opérations ensemblistes


Soient ρ et σ relations sur E ρ : complémentaire
ρ∪σ : réunion
ρ∩σ : intersection

(x,y) ∈ ρ ∪ σ SSI xρy ou xσy


(x,y) ∈ ρ ∩ σ SSI xρy et xσy
x ρ y SSI (x,y) ∉ρ ( non xρy)
ρ ⇒ σ SSI ρ ⊆ σ càd ∀ x,y ∈ E xρy ⇒ xσy

EMI D. Chiadmi - Théorie des langages – S4 – 2011 13


3. Classes de définitions (description)

• Existence de plusieurs classes de définitions qui


peuvent être traduites en un algorithme de
reconnaissance

• Les définitions sont fondées sur des systèmes de


réécriture :
1. Automates et machines

2. Grammaires : engendrer toutes les chaînes du


langage à partir d’une chaîne donnée « axiome de la
grammaire »
EMI D. Chiadmi - Théorie des langages – S4 – 2011 14
B- Grammaire par l’exemple
• une phrase est composée d’un sujet suivi d’un verbe suivi d’un
complément
• Exemple : L’étudiant suit un cours

sujet verbe complément


• Règle 1 : phrase = sujet verbe complément
Ensuite il faut expliquer ce qu’est un sujet , un verbe, un complément
• Règle 2 : sujet = article adjectif nom | article nom adjectif |article nom
• Règle 3 : article = le | la | un | des | l
• Règle 4 : adjectif = malin | stupide | couleur
• Règle 5 : couleur = vert | rouge | jaune
• Etc.

EMI D. Chiadmi - Théorie des langages – S4 – 2011 15


1. Grammaires formelles (inventé par Noam Chomsky)
Définition
G = < VT , VN , S , R > où
– VT Vocabulaire terminal disjoints
– VN Vocabulaire non terminal
– Avec V= VT ∪ VN vocabulaire de la grammaire
– S ∈ VN : axiome de la grammaire
– R = règles de la grammaire // Règle de production

Le système de réécriture est défini par < V, R >

Convention
Non terminaux Terminaux Chaîne de T et NT
MAJUSCULE Minuscule Lettre grecque

EMI D. Chiadmi - Théorie des langages – S4 – 2011 16


Exemple 1
• G = ( VT, VN, S, P) avec
• VT = { il elle parle est devient court reste sympa vite}
• VN= {PHRASE PRONOM VERBE COMPLEMENT
VERBETAT VERBACTION }
• S = PHRASE
• P={
– PHRASE → PRONOM VERBE COMPLEMENT
– PRONOM → il | elle
– VERBE → VERBETAT | VERBACTION
– VERBETAT → est | devient | reste
– VERBACTION → parle | court
– COMPLEMENT → sympa | vite }

EMI D. Chiadmi - Théorie des langages – S4 – 2011 17


Exemple 2
Un exemple est fourni par G1 (syntaxe possible) :
E → E+T | E-T |T
T → T*F | T/F |F
F → num | id
E, T, F : non terminaux (VN) définis par des règles de productions
(R_P)
+, -, *, /, num,id : terminaux (VT)
E : symbole de départ (axiome) de la grammaire.
R : Règles

Pb : Trouver les phrases de L(G1) : Dérivation

EMI D. Chiadmi - Théorie des langages – S4 – 2011 18


2. Relations de dérivation dans un système de réécriture
Soient S = <V, R> et x, y ∈ V* ;
on note ⇒ une relation sur V* ∈ V* × V* tels que

x ⇒S y ou x ⇒R y x se réécrit direct en y
ssi ∃ (α → β) ∈ R / x = uαv et y = uβv

x ⇒R y plusieurs règles de R permettent de réécrire x en y


x ⇒n y en appliquant n règles
x ⇒* y en appliquant un nb qq de règles évent. nul
x ⇒+ y en appliquant un nb non nul de règles
Remarques
1. x ⇒0 y ssi x = y
2. La donnée d’une dérivation ne permet pas toujours de retrouver les
règles de réécriture appliquées. // règles de production

EMI D. Chiadmi - Théorie des langages – S4 – 2011 19


Grammaires : reconnaissance

2. Langage engendré par une grammaire = L(G)


• Ensemble des chaînes sur VT que l’on peut dériver de
l’axiome S
= {x ∈ VT* / S ⇒*R x}

• ⇔ G2 si L(G1) = L(G2)
G1⇔

• L(G1) ??

EMI D. Chiadmi - Théorie des langages – S4 – 2011 20


Langage engendré par une grammaire

• L(G) est l’ensemble des chaînes sur VT que l’on peut dériver de
l’axiome S
= {x ∈ VT* / S ⇒*R x}
E
/ \
E T
• ⇔ G2 si L(G1) = L(G2)
G1⇔
| / \
T T F
| | |
• L(G1) ??
F F
| |
id + num* id

EMI D. Chiadmi - Théorie des langages – S4 – 2011 21


3. Classes de grammaires

- Grammaires de type 3 (régulière) :


Une grammaire est de type 3 si elle est soit linéaire à
gauche, soit linéaire à droite.

Exemple1:
• Grammaire linéaire à droite si
A → aB avec A, B ∈VN et a ∈ VT* S → aS | T | abU |cc
T → cT | ε
A → a avec A ∈VN et a ∈ VT *
U → abS

Exemple 2
• Grammaire linéaire à gauche si S → aS |bS | ε
A → Ba avec A,B ∈VN et a ∈ VT* Équivalent à
(a|b)*
A → a avec A ∈VN et a ∈ VT*

EMI D. Chiadmi - Théorie des langages – S4 – 2011 22


Classes de grammaires (suite)
Grammaires de type 2 // hors contexte Les grammaires hors contexte sont
A → ω avec A∈VN et ω∈V* utilisées pour définir la syntaxe
de la plupart des langages de
Langage de Dick : S → ( S ) S | ε programmation

Grammaire de type 1 // sous-contexte


αAβ → αωβ
où α,
α β∈V
β∈ *, A∈V
∈ N et ω∈ V+

Langage de correspondance entre paramètres formels et


effectifs L = {an bm cn dm, n ≥ 1, m ≥ 1}
Rqs :
A → ε est une ε - règle
A → B avec B ∈ VN est une 1-règle

EMI D. Chiadmi - Théorie des langages – S4 – 2011 23


restrictif
Remarques -
Type 1 : SC

Type 2 : HC

Type 3 : Régulier

Propriété : Les grammaires de type 1 englobent les


grammaires de type 2 qui englobent les grammaires de
type 3.

EMI D. Chiadmi - Théorie des langages – S4 – 2011 24


Problèmes décidables et indécidables

Un pb est dit
décidable pour G s’il ∃ un alg qui calcule la réponse (oui
ou non) au un pb posé
indécidable dans le cas contraire.

. Exemple de problème de décidabilité


L(G) est-il vide? L(G) = langage régulier ?
L(G) est-il infini? Un mot ∈ ou ∉ L(G) ? récursivité
L(G) = VT* ? Equivalence L(G1) = L(G2) ?

EMI D. Chiadmi - Théorie des langages – S4 – 2011 25


4. Choix d’un formalisme pour définir un langage
de programmation

Formalisme ou type de grammaire selon les critères suivants:

1. Doit être suffisamment puissant pour contenir une


définition du langage

2. Suffisamment simple pour que chaque définition puisse


être compilée en un algorithme efficace de
reconnaissance des programmes du langage défini

3. Doit contenir une définition du langage concise et facile


à comprendre

EMI D. Chiadmi - Théorie des langages – S4 – 2011 26


Formalisme (suite)

Critère 1exclut les grammaires régulières


• Parenthèses à grande profondeur
• Structures de blocs
Mais peut être utilisée pour la lexicographie des
langages de programmation (identificateurs,
constantes)

EMI D. Chiadmi - Théorie des langages – S4 – 2011 27


Formalisme (suite)
Critère 2 exclut les grammaires générales qui
engendrent des langages non récursifs
// un langage est dit récursif ⇔ si ∀ x chaîne de V, ∃
algorithme qui décide oui ou non x ∈ langage
• Pas d’algorithme de reconnaissance efficace

La plupart des langages de programmation sont définis


par des grammaires hors contexte

EMI D. Chiadmi - Théorie des langages – S4 – 2011 28


4. Arbres de dérivation (AD)

Un AD pour une séquence x ∈VT* selon G est un arbre de


dérivations E
/ \
- La racine : étiquetée par l'axiome, E T
| / \
- Les feuilles : étiquetées par les T ou ε
T T F
- Un noeud intérieur n étiqueté par A (NT) a | | |
- k fils étiquetés de ghe à dte par F F
N1,N2,...,Nk si A → N1N2...Nk ∈P | |
id + num* id
2- un fils étiqueté par ε si A→ε ∈ P
- x : concaténation des étiquettes des feuilles gauche à droite

EMI D. Chiadmi - Théorie des langages – S4 – 2011 29


Arbres de dérivation : exemple

Soit la grammaire suivante avec σ comme axiome :


V = {a,b} R = {σ → aσb , σ → ab}

σ σ

a σ b a b

a b

L(G) = {an bn / n ∈N*}


Pour tout w ∈V* w ∈L(G) ⇔ ∃n ∈N*/ w = anbn

EMI D. Chiadmi - Théorie des langages – S4 – 2011 30


G0 = ( VN, VT, E , P); VN = {E} ;
5. Ambiguïté
VT = {+,∗ ∗,(,),id, num}
 Une grammaire hors contexte
G =< VT , VPN =, S{, RE >→
estEdite | E ∗ E
+ Eambiguë s’il| existe
(E) | une
id | num }
chaîne terminale admettant au moins deux arbres de
dérivation de racine S

E E
/ \ \ Pb :
E E E E l’AD influe sur la
| / \ / \ sémantique ⇒
| E E E E choix unique
| | | | |
id + num* id id + num * id

EMI D. Chiadmi - Théorie des langages – S4 – 2011 31


Ambiguïté

un langage hors contexte est ambiguë si toutes les


grammaires hors contexte qui l’engendrent sont
ambiguës

EMI D. Chiadmi - Théorie des langages – S4 – 2011 32


Élimination des ambiguïtés par réécriture de G
1- en imposant des délimiteurs
2-en séparant un non terminal E en deux
Solution1 : délimiteur (par un terminal)
• Ex1 :
– I → Si E alors I | Si E alors I sinon I | autre
– I → Si E alors I finsi| Si E alors I sinon I finsi| autre
• Ex2 :
– E → E+E|E-E |E*E| (E) | id | num
– E → (E+E)|( E-E) |(E*E)| (E) | id | num
EMI D. Chiadmi - Théorie des langages – S4 – 2011 33
Élimination des ambiguïtés par réécriture de G
solution2 :
- Séparer I en 2 NT I-close et I-nclose : I entre
alors et sinon doit toujours être close
I → IC | InC //I-close | I-nclose
IC → si E alors IC sinon InC | autre
InC → si E alors I |si E alors IC sinon InC

- Séparer les niveaux de priorités


- E→E+T|E-T|T
- T→T*E|F
- F →(E) | num | id
EMI D. Chiadmi - Théorie des langages – S4 – 2011 34
Chapitre III. Automates finis
I. Définition:
C’est un quintuplet (Q, V, δ , I, F) où

Q ensemble fini d’états


V ensemble fini de symboles = vocabulaire de l’automate
δ sous ensemble de Q x V∪
∪{εε}x Q = ens de transitions
I ⊂ Q sous ensemble d ’états initiaux
F ⊂ Q sous ensemble d ’états finaux (finals)

EMI D. Chiadmi - Théorie des langages – S4 – 2011 35 35


transition
(p,a,q) transition où p,q ∈Q
et a ∈ V = a-transition
a
p : origine
p q
Q : extrémité

EMI D. Chiadmi - Théorie des langages – S4 – 2011 36


Quelques définitions
• Tout automate peut être dessiné comme suit:

a Signifie que (p,a,q) ∈ δ


p q

a,b
Signifie que (p,a,q) et (p,b,q) ∈ δ
p q

Marque un état initial


p

p ou p Marque un état final

EMI D. Chiadmi - Théorie des langages – S4 – 2011 37


• Entrée : ER r sur V
• Sortie : AFND
• Méthode: Décomposer r en sous expressions

1- r q r f

2- r|s s
q r f
3- rs
q r q1 s f
4- r*
r

EMI D. Chiadmi - Théorie des langages – S4 – 2011 38


Exemple
• Soit 1 AFND reconnaissant des nombres
réels xx..xExx ou xx…x.xx…x
• ∑ = {0, ... , 9, ., E}
ch ch
ch
ch
E
.
ch . ch ε

ch ch
EMI D. Chiadmi - Théorie des langages – S4 – 2011 39
Quelques définitions (suite)

• Chemin
Un chemin de A de longueur n = suite de
transitions de δ / (ri , ai+1 , r i+1) pour 0≤ i ≤ n a1 …an
a1 …an = trace du chemin r0 rn

Par convention, un chemin de longueur 0 est ε


la transition (p,ε,p) p

EMI D. Chiadmi - Théorie des langages – S4 – 2011 40


Quelques définitions (suite)

• Mot : un mot x est reconnu par un automate s’il existe une


trace x menant d’un état initial à un état final

• Langage : Soit A un automate,


L(A) ={ des mots reconnus par l’automate A }
L(A) = le langage reconnu par A

Un langage reconnu par un automate fini de


vocabulaire V est appelé langage d’états fini sur V

EMI D. Chiadmi - Théorie des langages – S4 – 2011 41


Propriétés
1. 2 automates A et B sont équivalents s’ils ont le même
vocabulaire et reconnaissent le même langage.
2. Soient A = (Q, V, δ , I, F) un automate fini ; x, y ∈ V*,
p, q deux états de A et a ∈ V
- Un chemin mène de p à q avec la trace xy ⇔ ∃ un état r
x y
p r et r q

- a est un chemin de p à q ⇔ ∃ r, s ∈Q /
ε a ε
p r s q
a
chemin transition chemin
p q
chemin

EMI D. Chiadmi - Théorie des langages – S4 – 2011 42


Automates déterministes
Un AFD est un cas particulier d'un AFND où :
– Il y a un unique état initial
– Aucun état n'a de ε-transition
– ∀(q,a), q∈Q & a∈V, ∃ au + un état successeur

On note δ(p,a) ∼ l’unique état q / (p,a,q) ∈ δ


Q x V → Q fonction de transition

Exemple

0 0
1 État initial

pair impair = état final

1
EMI D. Chiadmi - Théorie des langages – S4 – 2011 43
Propriétés
Soit A= (Q,V, δ ,q0, F) automate fini déterministe
1. Pour tout état p et toute chaîne x,
x
δ (p,x) = q ⇔ ∃ un chemin p → q
trace
2. L(A) = {x ∈ V* / δ(q0, x) ∈ F}
Preuve: utiliser la propriété 1

3. Pour tout état p et toutes chaînes x,y


δ (p,xy) = δ (δ (p,x) ,y)
Preuve: par récurrence sur la lg de y

EMI D. Chiadmi - Théorie des langages – S4 – 2011 44


Propriétés (suite)
Définition 2
- p est accessible pour A ⇔ il y a une chaîne x sur V | p = δ(q0,x)
-un automate déterministe est dit initialement connecté si tous
ses états sont accessibles

4. Soit R l’ensemble des états accessibles de A


B = (R,V, η , q0, R∩F) est l’automate obtenu en supprimant
les états inaccessibles. η = δ ∩ (R x V x R)

Automate déterministe ⇔ A et B initialement


connecté

EMI D. Chiadmi - Théorie des langages – S4 – 2011 45


Automate déterministe: construction

Théorème 2
Un langage reconnu par un AFND est aussi
reconnu par un AFD

?
Pb : AFND AFD

EMI D. Chiadmi - Théorie des langages – S4 – 2011 46


AFD Construction (suite)

Soit A = (Q, V, ∆, q0, F) AFND,

Définition1 : { ε-succs} de
– q ∈ Q : ε-succs(q)
ε ε }
= { p | (q,ε,p)
– S ⊆ Q : ε-succs(S) = ∪q∈S ε-succs(q)

EMI D. Chiadmi - Théorie des langages – S4 – 2011 47


AFD Construction (suite)

Définition2 : L’AFD B=(Q', V, η, q’0 ,F'), équivalent à


A, est défini par :
– Q' ⊆ P(Q) , l'ensemble des parties de Q
– q'0 = ε-fermeture (q0)
– F' = {S ⊆ Q| S ∩ F ≠ ∅ }
– η (S,a) = ε- fermeture {p |(q,a,p) ∈∆, q∈S} , ∀ a ∈V

EMI D. Chiadmi - Théorie des langages – S4 – 2011 48


Exple : d’un AFND à un AFD
1. Partir de ε-succs de l’état initial
2. Rajouter dans la relation de transition toutes les
fermetures des nouveaux états produits avec leurs
transitions
3. Recommencer jusqu’à ce qu’il n’y ait plus de nouvel état
4. Tous les états contenant au moins un état terminal
deviennent terminaux
5. Renuméroter alors les états
état a b c ε
0 2 - 0 1
1 3 4 - -
2 - - 1,4 0
3 - 1 - -
4 - - 3 2
EMI D. Chiadmi - Théorie des langages – S4 – 2011 49
Exple : d’un AFND à un AFD
état a b c ε état a b c
état a b c
0 2 - 0 1 0,1 2,3,0 2,4 0,1
0’ 1’ 2’ 0’
1 3 4 - - 2,3,0 2,0 1 1,4,2
1’ 3’ 4’ 5’
2 - - 1,4 0 2,4 - - 1,4,3,2
2’ - - 6’
2,0 2,0 - 1,4,0
3 - 1 - - 3’ 3’ - 7’
1 3 4,2 -
4 - - 3 2 4’ 8’ 2’ -
1,4,2 3 4 1,3,4,2
ε-fermeture(0) = {0,1} 1,4,3,2 3 1,4,2 1,3,4,2
5’ 8’ 9’ 6’
6’ 8’ 5’ 6’
g({0,1},a) = ε-ferm{2,3}= {2,3,0} 1,4,0 2,3,0 4,2 3,0,1
7’ 1’ 2’ 10’
g({0,1},b) = ε-ferm {4} = {2,4} 3 - 1 -
8’ - 4’ -
g({0,1},c) = ε-ferm {0} = {0,1} 4 - - 3
9’ - - 8’
g({2,3,0},a) = ε-ferm{2} = {2,0} 3,0,1 2,3,0 1,4,2 0,1
10’ 1’ 5’ 0’
g({2,3,0},b) = ε-ferm{1}= {1}
g({2,3},c) = ε-ferm{1,4}= {1,4,2} Etc.

EMI D. Chiadmi - Théorie des langages – S4 – 2011 50


Algorithme : De l’AFND à l’AFD
q'0 := ε-fermeture(q0) ; Q' := {q'0} ; marque(q'0) := faux ; δ := ∅;
Tantque (∃ S ∈ Q') & ( non marque (S)) faire
marque(S) := vrai ;
pour tout a ∈ V faire
T := ε-fermeture({p∈Q | (q,a,p) ∈ δ & q ∈ S});
si T ∉ Q' alors
Q' := Q' U {T} ; /* nouvel état*/
marque(T) := faux ;
fsi
η := η ∪ {(S,a) → T} /*nouv. trans.*/
fpour
ftq
fin.
EMI D. Chiadmi - Théorie des langages – S4 – 2011 51
Exercices
Donnez un automate fini déterministe
reconnaissant chacun des langages
suivants :
1. Les mots contenant au moins deux ‘a’
consécutifs sur l’alphabet {a,..,z}
2. ((a+b) a)* sur le vocabulaire {a,b}
3. (0+1)*0 sur le vocabulaire {0,1}

EMI D. Chiadmi - Théorie des langages – S4 – 2011 52


Exercices (suite)
• Donner intuitivement une expression régulière
pour chacun des langages suivants:
• L1= {l’ensemble des mots sur l’alphabet {a, b, c}
telle que « jamais de ‘b’ avant la première
occurrence de ‘a’ »}. Un mot sans ‘a’ ou un mot
sans ‘b’ fait partie de L1.
• L2= {l’ensemble des mots sur l’alphabet ASCI
commençant par /* et se terminant par */, et sans
*/ entre les deux}
EMI D. Chiadmi - Théorie des langages – S4 – 2011 53
Exercices (suite)
Le système d’immatriculation marocain est composé
de 3 champs consécutifs :
Compteur Série région
Ex : 125 ‫أ‬ 25
Avec
- Compteur entre 1 et 999999
- Série ∈ { ‫ أ‬,‫ ب‬, ‫} س‬
- Région entre 1 et 76

Ecrire un automate qui décrit un tel langage.

EMI D. Chiadmi - Théorie des langages – S4 – 2011 54


Exercice (grammaire)
Soit la grammaire des expressions arithmétiques avec ‘+’ et ‘*’ :
G = (Vt, Vn, R, Exp), telle que :
Vt = {(, ), +, *, num}
Vn = {Exp}
R= {Exp  num
Exp  ( Exp )
Exp  Exp + Exp
Exp  Exp * Exp}

1. Donner quelques mots générés par G


2. Donner un arbre de dérivation pour la chaîne « num + num * num »
L’arbre est-il unique? Que peut on dire de G et du langage engendré par G?
Justifier.
1. En général, on peut avoir plusieurs grammaires générant le même langage.
2. Proposer une grammaire équivalente à G

EMI D. Chiadmi - Théorie des langages – S4 – 2011 55


Chapitre IV.Automates minimaux
Définition : Un automate déterministe A est minimal si tout
automate déterministe équivalent à A comporte au moins
autant d’états que A

Soit A= (Q, V, δ ,q0, F) automate fini déterministe


• Deux états p,q de A sont équivalents:
p ≡A q si ∀ x ∈V* : δ (p, x) ∈ F ⇔ δ(q, x) ∈ F

• ∀ x ∈V* p ≡ q ⇒ δ (p,x) ≡ δ(q,x)

EMI D. Chiadmi - Théorie des langages – S4 – 2011 56


Soit µ(A)= (R, V, η, [q0], G) Où

• R: ens des classes d’équivalence de la relation ‘≡’

• G: ens des classes d’équivalence des états de F

• [a] : classe d’≡ de a pour la relation ‘≡’

• η([p],a) = [δ(p,a)] pour ∀a∈V , ∀p∈Q

EMI D. Chiadmi - Théorie des langages – S4 – 2011 57


Proposition
Si A automate déterministe initialement connecté, alors µ(A) est
un automate déterministe ≡ A, initialement connecté et tous
ses états sont 2à2 non équivalents.

• ∀x∈V* ,∀p∈Q : η([p],x) = [δ(p,x)]
• p∈ F ⇔ [p] ∈ G
• L(A) = L(µ(A))
• µ(A) est initialement connecté
Corollaire
Si A automate déterministe minimal alors A est initialement
connecté et ses états sont 2à2 non équivalents
Propriété caractéristique des automates minimaux

EMI D. Chiadmi - Théorie des langages – S4 – 2011 58


Théorème 1
A.D.M. ⇔ A.I.C. et tous ses états sont 2à2 non ≡ts

Théorème 2:
Existence d’un automate minimal ≡ à un automate donné
Si A automate déterministe et
B l’automate obtenu sans les états inaccessibles de A
Alors µ(B) est minimal et ≡ à A

Théorème 3:
Si 2 automates déterministes sont ≡ts et minimaux alors ils sont
isomorphes
Unicité de l’automate minimal

EMI D. Chiadmi - Théorie des langages – S4 – 2011 59


Construction d’un automate minimal équivalent
à un automate donné (1)

Soit A= (Q,V, δ ,q0,F)


1. Enlever les états inaccessibles de A
⇒ B = (R, V, η, q0, G)
2. Calculer la congruence ‘≡’ pour B : p,q∈Q
p ≡ q ssi ∀x∈V* η(p,x) ∈ G ⇔ η(q,x) ∈ G
3. Construire l’automate
µ(B)= (S, V, θ, [q0], H)

EMI D. Chiadmi - Théorie des langages – S4 – 2011 60


Construction d’un automate minimal équivalent
à un automate donné (2)


• S ens des classes de la relation ‘≡’
• H ens des classes des états de G
• θ([p],a)
θ η
= [η(p,a)] ∀ ∈ , ∀p∈R
∀a∈V ∀ ∈
• ≡k (où k ≥ 0) relation sur R :
p ≡k q ⇔ ∀x∈V* / |x|≤ k
η(p,x) ∈ G ⇔ η(q,x) ∈ G

EMI D. Chiadmi - Théorie des langages – S4 – 2011 61


Nous avons les propriétés suivantes (3)

1. ∀ k ≥ 0 ‘≡k’ est une relation d’équivalence


2. ≡ = ∩ ≡k
k≥0
3. ∀k≥0 ≡k+1 ⊆ ≡k
4. p ≡0 q ssi p∈G ⇔ q∈ G
5. ∀ k ≥ 0 p ≡k+1 q ssi
p ≡k q et ∀a∈V / η(p,a) ≡k η(q,a)
6. Si n est le nb d’états de l’automate B alors
∃ k≤n / ‘≡k’ = ‘≡k+1’ = ‘≡’

EMI D. Chiadmi - Théorie des langages – S4 – 2011 62


Règle générale (4)

Pour construire la relation ‘≡’ :


• On calcule à partir de l’indice 0 la suite des
relations ‘≡k’ ((4) et (5)) jusqu’au premier indice
m tel que :
‘≡m’ = ‘≡m+1’ qui est donc ‘≡’
• exemple

EMI D. Chiadmi - Théorie des langages – S4 – 2011 63


Pour tout e ∈ V
e
1 2

1 r 2
ε 1′ r 2 ε

1 3
1 ′′ s 2′ ε
ε

1 2 2
1′
ε

1’ 1 r 2 1’’
ε ε
EMI ε des langages – S4 – 2011
D. Chiadmi - Théorie 64
Tout langage d’états fini sur V est un langage régulier sur V

Définition : système d’équation associé à un automate fini


• A = (Q,V, δ, I, F) automate fini
• q1, .. , qn liste sans répétition des états de A
• αi,j = { a ∈ V∪{ε} / (qi, a, qj ) ∈ δ 1 ≤ i,j ≤ n }
• x1, .. , xn : n variables non éléments de V
Le système d’équations sur V pour 1 ≤ i ≤ n
n
xi = ε + ∑ αi,j xj si qi ∈ F
j=1

n
xi = ∑ αi,j xj si qi ∉ F
j=1

EMI D. Chiadmi - Théorie des langages – S4 – 2011 65


Ce système a pour plus petite solution :

• x1= L(A1), .. , xn= L(An)


pour 1 ≤ i ≤ n Ai = (Q,V, δ, qi, F)
Théorème
Si α,β deux langages sur V et x ∉ V alors:
x = α.x +β admet comme plus petite solution x=α α *β
Ex: si x=L ⇒ α*β ⊆ L

Un langage d’états fini sur V SSI un langage régulier sur V

L = L(A) = ∪ L(Ai) = ∪ langages réguliers = régulier


i∈I i∈I
Exemple:

EMI D. Chiadmi - Théorie des langages – S4 – 2011 66


Chapitre VI
Définition des langages par récurrence
Rappels
G = < VT , VN , S , R >
grammaire = ens de règles de production où
• VT Vocabulaire terminal
• VN Vocabulaire non terminal
Avec V= VT ∪ VN vocabulaire de la grammaire
• S ∈ VN : axiome de la grammaire
• R : règles de la grammaire

But : Étant donnée une grammaire G, définir par récurrence le


langage L(G) engendré par G et réciproquement.

EMI D. Chiadmi - Théorie des langages – S4 – 2011 67


Exemples
Soit G la grammaire suivante:
VT= {a,b} VN= {s, x, y}
R={s  ay, y  bs, y  ayy, y  b,
s  bx, x  as, x  bxx, x  a }
Pb: recherche du langage engendré par cette grammaire L(G)

Ex: w= ababab, bbbaabaa


Par récurrence:
ab, ba, aabb, abab, abba, baba, baab,…
On peut montrer:
S * w ssi |w|a= |w|b
y * w ssi |w|b= |w|a +1
x * w ssi |w|a= |w|b +1

EMI D. Chiadmi - Théorie des langages – S4 – 2011 68


Réciproquement: Étant donné un langage, on cherche
une grammaire qui l’engendre
• Exemple 1:
Soit L= {w∈ {a,b}* / bb non facteur de W }
On construit l’automate correspondant :

a b S aS
S bX
S X R= X aS
S 1
a X 1

EMI D. Chiadmi - Théorie des langages – S4 – 2011 69


• Exemple2 :

Soit L= {w∈ {a,b}* / |w|a= 2|w|b }


On a :
aab a2nbn
baa bna2n
aba w1w‘w2 avec w1w2 ∈ L
et w‘∈ {aab, aba, baa }
Soit
S SaSaSbS
R= S SaSbSaS
S SbSaSaS
S 1

EMI D. Chiadmi - Théorie des langages – S4 – 2011 70


Chapitre V
Langages d’états finis et langages réguliers

Tout langage régulier sur V est un langage d’états finis sur V

Définition 1
• e : expression régulière sur V
• λ(e) = langage sur V = valeur de e
• V (e) = nb d’occurrences de signes dans e

Définition 2
Un automate fini est simple s’il n’admet qu’un état initial et
qu’un état final et aucune transition n’a comme extrémité l’état
initial ni comme origine l’état final

EMI D. Chiadmi - Théorie des langages – S4 – 2011 71


Propriété 1

Si e expression régulière sur V alors il ∃ α≥2 et un automate


simple A= ({1..α}, V, δ, {1}, {α}) qui reconnaît le
langage λ(e)

Preuve
V (e)= 0 ⇒
e=∅ ou e ∈ V∪{ε}

e
1 2 1 2

EMI D. Chiadmi - Théorie des langages – S4 – 2011 72


Preuve (suite)

V (e)= x ⇒ e = f * ou e= f+g ou e=f.g


avec f, g expressions régulières sur V et V (f), V (g)≤x

• Si e = f * ⇒ C = ({1..α+1}, V, ξ, {1}, {α+1})


C reconnaît λ(e) et L(A)* = L(C)
• Si e = f + g ⇒ L(A) ∪ L(B) = L(C)
où C = ({1..α+β-2}, V, ξ, {1}, {α+β-2})
• Si e = f . g ⇒ L(A) . L(B) = L(C)
où C = ({1..α+β-1}, V, ξ, {1}, {α+β-1})

EMI D. Chiadmi - Théorie des langages – S4 – 2011 73


Pour tout e ∈ V
e
1 2

1 r 2
ε 1′ r 2 ε

1 3
1 ′′ s 2′ ε
ε

1 2 2
1′

1’ 1 r 2 1’’
ε ε
EMI D. Chiadmi - Théorie des langages – S4 – 2011 74
Exemple si e = f *

Le langage 010 est reconnu par l’automate simple:

0 1 0
p r s q

Le langage (010)* est reconnu par l’automate simple:


1
r s

0 0

p0 p q
ε ε

EMI D. Chiadmi - Théorie des langages – S4 – 2011 75


Si e = f + g ⇒ L(A) ∪ L(B) = L(C)
Exemple:
Le langage 0* est reconnu par l’automate simple : 0

p q r
ε ε

Le langage 101 est reconnu par l’automate simple :


1 0 1
p q r s

0
Le langage 0* + 101 est reconnu par l’automate simple:

ε q ε
p t
1 0 1
r s

EMI D. Chiadmi - Théorie des langages – S4 – 2011 76


Si e = f . g ⇒ L(A) . L(B) = L(C)
Exemple:
Le langage (0+1)* est reconnu par l’automate simple 0,1

p q r
ε ε
Le langage 00 est reconnu par l’automate simple

0 0
p q r

Le langage (0+1)*00 est reconnu par l’automate simple

0,1
0 0
p q r t
ε ε s

EMI D. Chiadmi - Théorie des langages – S4 – 2011 77


Tout langage d’états fini sur V est un langage régulier sur V

Définition : système d’équation associé à un automate fini


• A = (Q,V, δ, I, F) automate fini
• q1, .. , qn liste sans répétition des états de A
• αi,j = { a ∈ V∪{ε} / (qi, a, qj ) ∈ δ 1 ≤ i,j ≤ n }
• x1, .. , xn : n variables non éléments de V
Le système d’équations sur V pour 1 ≤ i ≤ n
n
xi = ε + ∑ αi,j xj si qi ∈ F
j=1

n
xi = ∑ αi,j xj si qi ∉ F
j=1

EMI D. Chiadmi - Théorie des langages – S4 – 2011 78


Ce système a pour plus petite solution :

• x1= L(A1), .. , xn= L(An)


pour 1 ≤ i ≤ n Ai = (Q,V, δ, qi, F)
Théorème :
Si α,β deux langages sur V et x ∉ V alors:
x = α.x +β admet comme plus petite solution x=α α *β
Ex: si x=L ⇒ α*β ⊆ L

Un langage d’états fini sur V SSI un langage régulier sur V

L = L(A) = ∪ L(Ai) = ∪ langages réguliers = régulier


i∈I i∈I
Exemple: traité en cours

EMI D. Chiadmi - Théorie des langages – S4 – 2011 79


Exemple: Soit l’automate A

EMI D. Chiadmi - Théorie des langages – S4 – 2011 80


Solution du système d’équations: Langage reconnu
par l’automate A

Notation: | = +

EMI D. Chiadmi - Théorie des langages – S4 – 2011 81