Théorie des langages 2010-2011
Short Description
Download Théorie des langages 2010-2011...
Description
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 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
Devoir
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 Jeu. 3/3/11 S18 Mer. 9/3/11 Jeu.10/3/11
Ch3/1 - Automates finis Ch3/2 - Automates finis : Automates déterministes, minimaux Ch4- Langages réguliers et langages d’état fini : automate ⇔ ER Ch5- Définitions des langages par récurrence : langage ⇔ grammaire Ch6 – Automates à piles
Travail à rendre
Remise du devoir
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 = 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 ……… α → βk EMI
α → β1 | β2 |…| βk
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
EMI
D. Chiadmi - Théorie des langages – S4 – 2011
xρy ⇒ xσy
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 – VN Vocabulaire non terminal
disjoints
–
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 T F
→ E+T | E-T |T → T*F | T/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 = 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}
•
G1⇔ ⇔ G2 si L(G1) = L(G2)
•
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
•
G1⇔ ⇔ G2 si L(G1) = L(G2)
•
L(G1) ??
EMI
D. Chiadmi - Théorie des langages – S4 – 2011
/ \ E T | / \ T T F | | | F F | | id + num* id 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 • Grammaire linéaire à gauche si A → Ba avec A,B ∈VN et a ∈ VT* A → a avec A ∈VN et a ∈ VT* EMI
D. Chiadmi - Théorie des langages – S4 – 2011
Exemple 2 S → aS |bS | ε Équivalent à (a|b)*
22
Classes de grammaires (suite) Grammaires de type 2 // hors contexte A → ω avec A∈VN et ω∈V* Langage de Dick : S → ( S ) S | ε
Les grammaires hors contexte sont utilisées pour définir la syntaxe de la plupart des langages de 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 / \ E T - La racine : étiquetée par l'axiome, | / \ - 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 N1,N2,...,Nk si A → N1N2...Nk ∈P 2- un fils étiqueté par ε si A→ε ∈ P
F F | | id + num* id
- 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
a
b
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 + Eambiguë | E ∗ E (E) | une id | num } G =< VT , VPN = , S{, RE >→ estEdite s’il| existe chaîne terminale admettant au moins deux arbres de dérivation de racine S
E
E / \ E E | / \ | E E | | | id + num* id EMI
E
\ E
/ \ E E | | id + num * id
D. Chiadmi - Théorie des langages – S4 – 2011
Pb : l’AD influe sur la sémantique ⇒ choix unique
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 Q : extrémité
EMI
D. Chiadmi - Théorie des langages – S4 – 2011
p
q
36
Quelques définitions • Tout automate peut être dessiné comme suit: a p
q a,b
p
Signifie que (p,a,q) et (p,b,q) ∈ δ
q
Marque un état initial
p p
EMI
ou
Signifie que (p,a,q) ∈ δ
p
Marque un état final
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
r
q
2- r|s
s
q
r
3- rs
q
f
r
q1 s
f 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
EMI
ε
ch ch
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 = trace du chemin
Par convention, un chemin de longueur 0 est la transition (p,ε,p)
EMI
D. Chiadmi - Théorie des langages – S4 – 2011
a1 …an r0
rn
ε p
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 p
x
y
r et
r
q
- a est un chemin de p à q ⇔ ∃ r, s ∈Q / ε p
s
r chemin
ε
a transition
q chemin
a 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 impair
pair
État initial = é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,
2.
x δ (p,x) = q ⇔ ∃ un chemin p → q trace 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 :
EMI
AFND
?
AFD
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.
2.
3. 4. 5.
Partir de ε-succs de l’état initial Rajouter dans la relation de transition toutes les fermetures des nouveaux états produits avec leurs transitions Recommencer jusqu’à ce qu’il n’y ait plus de nouvel état Tous les états contenant au moins un état terminal deviennent terminaux Renuméroter alors les états
EMI
état a b
c
ε
0
2 -
0
1
1
3 4
-
-
2
- -
1,4 0
3
- 1
-
-
4
- -
3
2
D. Chiadmi - Théorie des langages – S4 – 2011
49
Exple : d’un AFND à un AFD état a b 0 1 2 3 4
2 3 4 - - 1 - -
c 0 -
ε
état
a
1
0,1
2,3,0 2,4
0,1
-
2,3,0
2,0
1
1,4,2
2,4
-
-
1,4,3,2
2,0
2,0
-
1,4,0
1
3
4,2
-
1,4,2
3
4
1,3,4,2
1,4 0 3
2
ε-fermeture(0) = {0,1}
1,4,3,2 3
b
c
1,4,2 1,3,4,2
g({0,1},a) = ε-ferm{2,3}= {2,3,0} g({0,1},b) = ε-ferm {4} = {2,4} g({0,1},c) = ε-ferm {0} = {0,1}
1,4,0
2,3,0 4,2
3,0,1
3
-
1
-
4
-
-
3
g({2,3,0},a) = ε-ferm{2} = {2,0} g({2,3,0},b) = ε-ferm{1}= {1} g({2,3},c) = ε-ferm{1,4}= {1,4,2}
3,0,1
2,3,0 1,4,2 0,1
EMI
état a
b
c
0’
1’ 2’ 0’
1’
3’ 4’ 5’
2’
-
-
6’
3’
3’ -
7’
4’
8’ 2’ -
5’
8’ 9’ 6’
6’
8’ 5’ 6’
7’
1’ 2’ 10’
8’
-
4’ -
9’
-
-
8’
10’ 1’ 5’ 0’
Etc.
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.I.C. et tous ses états sont 2à2 non ≡ts A.D.M. ⇔ ⇒ 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) Où • 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
EMI
D. Chiadmi - Théorie des langages – S4 – 2011
⇔ η(q,x) ∈ G
61
Nous avons les propriétés suivantes (3) 1. 2.
∀ k ≥ 0 ‘≡k’ est une relation d’équivalence ≡ = ∩ ≡k k≥0
3. 4.
∀k≥0 ≡k+1 ⊆ ≡k p ≡0 q ssi p∈G ⇔
5. ∀ k ≥ 0 p ≡k+1 q
q∈ G
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
r
1 ε 1′ 1 ε
r
2
ε 3
1 ′′
2′
s
ε 1
2
ε 1’
1 ε
EMI
2
r
2
1′
2
1’’ ε
ε 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 X
S a
EMI
D. Chiadmi - Théorie des langages – S4 – 2011
R=
S S X S X
aS bX aS 1 1
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 S SaSbSaS R= 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=∅ 1
EMI
ou
e ∈ V∪{ε}
2
D. Chiadmi - Théorie des langages – S4 – 2011
1
e
2
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
r
1 ε 1′ 1 ε
r
2
ε 3
1 ′′
2′
s
ε 1
1’
1 ε
EMI
2
r
2
2
1′
2
1’’ ε
D. Chiadmi - Théorie des langages – S4 – 2011
74
Exemple si e = f * Le langage 010 est reconnu par l’automate simple: 1
0 p
0 s
r
q
Le langage (010)* est reconnu par l’automate simple: 1 s
r 0
0 p0
EMI
ε
D. Chiadmi - Théorie des langages – S4 – 2011
p
ε
q
75
Si e = f + g ⇒ L(A) ∪ L(B) = L(C) Exemple: Le langage 0* est reconnu par l’automate simple : p
0 q
ε
r
ε
Le langage 101 est reconnu par l’automate simple : 0
1 p
r
q
t 0
1 r
EMI
D. Chiadmi - Théorie des langages – S4 – 2011
ε
q
ε
s
0
Le langage 0* + 101 est reconnu par l’automate simple:
p
1
1 s 76
Si e = f . g ⇒ L(A) . L(B) = L(C) Exemple: Le langage (0+1)* est reconnu par l’automate simple p
ε
0,1 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
EMI
ε
q
ε
r
s
D. Chiadmi - Théorie des langages – S4 – 2011
t
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
View more...
Comments