L2: cours I4c Langages et automates

24
L2: cours I4c Langages et automates L2: cours I4c Langages et automates Olivier Togni, LE2I (038039)3887 [email protected] Modifi´ e le 31 mai 2007 1 de 25

Transcript of L2: cours I4c Langages et automates

Page 1: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

L2: cours I4cLangages et automates

Olivier Togni, LE2I(038039)3887

[email protected]

Modifie le 31 mai 2007

1 de 25

Page 2: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Sommaire

Utiles pour compilation, interpretation,...

1. Langages rationnels

2. Langages reconnaissables

3. Langages algebriques

2 de 25

Page 3: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages rationnels

Les mots

- alphabet=ensemble fini de symboles (lettres)- mot sur alphabet A : suite finie de lettres de A- A∗=ensemble des mots definis sur A- mot vide ε ∈ A∗

- longueur d’un mot u : |u|=nb de lettres. |u|a=nb d’occurences dea dans u.- operation de concatenation sur A∗ : si u = abc et v = cac alorsu.v = abccac .Rem : operation associative (u(v .w) = (u.v)w) mais pascommutative (∃u, v , u.v 6= v .u).- notation : le mot aaabbab sera raccourci en a3b2ab.- (A, ., ε) est un monoıde (ensemble muni d’une operationassociative et d’un element neutre, mais pas forcement d’inversecomme dans un groupe).

3 de 25

Page 4: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages rationnels

Langages rationnels

- Langage formel sur A= ensemble fini ou infini de mots de A :L ⊂ A∗.- operations :* complementation L = {u ∈ A∗, u 6∈ L}* union L1 ∪ L2 = {u ∈ A∗, u ∈ L1 ou u ∈ L2}* intersection L1 ∩ L2 = {u ∈ A∗, u ∈ L1 et u ∈ L2}* produit L1.L2 = {u ∈ A∗, u = u1u2, u1 ∈ L1 et u2 ∈ L2}* fermeture iterative : L∗ est l’ensemble des mots formes par unconcatenation finie de mots de L : L∗ = {ε} ∪ L ∪ L2 ∪ L3 ∪ . . ..L+ = L∗ − {ε}.

4 de 25

Page 5: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages rationnels

Expressions rationnelles

Definition

Un langage est dit rationnel s’il s’ecrit de maniere finie a l’aide desoperations d’union, de produit et de fermeture transitive a partirdes lettres de l’alphabet et du mot vide.

⇒ defini par une expression rationnelle. De facon formelle :

Definition

Une expression rationnelle est definie de facon inductive par :- ∅ est une expression rationnelle,- si a est une lettre, a est une expression rationnelle,- si E est une expression rationnelle, E ∗ aussi,- si E1 et E2 sont des expr. rationnelles, E1 + E2 et E1E2 aussi.

5 de 25

Page 6: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages rationnels

Exemple

Ex : si A = {a, b, c}, A∗ = (a ∪ b ∪ c)∗ = (a + b + c)∗.

Ex : sur {a, b}, donner les expressions rationnelles correspondantau langages suivants :

I mots ayant 1 seule occurence de b

I mots contenant abab

I mots ne contenant pas abab.

6 de 25

Page 7: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Langages reconnaissables

Definition

Un automate fini A est un sextuplet (A,Q,T , λ, I ,F ) avec :- A alphabet fini appele alphabet d’entree,- Q ensemble fini d’etats,- T ensemble des transitions,- λ : T → A etiquettes des transitions,- I ensemble des etats initiaux,- F ensemble des etats terminaux (ou finals),

Rem : (Q,T , λ) est un graphe oriente etiquete (les arcs ont unevaleur ou etiquette qui est une lettre de A).

7 de 25

Page 8: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Exemple

8 de 25

Page 9: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Langage reconnu par un automate

Soit r = q0, q1, . . . , qp un chemin dans ALa trace λ(r) de r est le mot de A∗ forme par les etiquettesportees par les arcs qui composent le chemin :λ(r) = λ(q0, q1)λ(q1, q2) . . . λ(qp−1, qp).

Definition

Le langage reconnu par un automate A est l’ensemble des tracesde tous les chemins qui partent d’un etat initial et aboutissent a unetat final : L(A) = {λ(r) ∈ A∗, r = q0, q1, . . . , qp, q0 ∈ I , qp ∈ F}.

Definition

Un langage L est reconnaissable ssi il existe un automate fini A telque L = L(A).

9 de 25

Page 10: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Exemple :

Langage reconnu par l’automate de l’ex precedant

10 de 25

Page 11: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Automates minimaux et complets

Il existe souvent plusieurs solutions d’automates correspondant aun langage reconnaissable. Il existe une solution utilisant unnombre minimum d’etats : l’automate minimal. Il existe des algospour minimiser un automate.

Definition

Un automate est complet ssi ∀q ∈ Q,∀a ∈ A, il existe au moinsune transition t d’origine q et d’etiquette a.

Il est facile de rendre un automate complet en ajoutant un etatappele puit et toutes les transitions manquantes de chaque etatvers ce puit.

11 de 25

Page 12: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Automates deterministes

Definition

Un automate est deterministe ssi :- il n’y a qu’un seul etat initial, et- ∀q ∈ Q,∀a ∈ A, il existe au plus une transition t d’origine q etd’etiquette a.

Un automate non deterministe est souvent plus facile a construire(qu’un deterministe), par contre il est plus facile de tester si unmot appartient a un langage quand on est en presence d’unautomate deterministe.

12 de 25

Page 13: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Automates deterministes

Pour un automate deterministe, on peut definir la fonction outable de transition δ : Q × A → Q, qui a partir d’un etat et d’unelettre, donne l’etat dans lequel on arrive si on suit la transitioncorrespondant a la lettre.Ex :

13 de 25

Page 14: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Automates deterministes

Un automate A sera non deterministe si au moins une dessituations suivantes a lieu :- A possede au moins deux etats initiaux- A possede des transitions etiquetees ε- δ n’est pas une fonction mais une relation.Il existe des algorithmes pour determiniser un automate, donc ilexiste toujours une solution deterministe ! !

14 de 25

Page 15: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Exemple

Construire un automate deterministe acceptant le langage(aab + aa + aabb)∗

15 de 25

Page 16: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Algorithme de simulation d’un automate deterministe

Etat <- etat_initialTant Que (il reste des lettres) faireDebutLire(lettre)Etat <- TT[Etat,lettre] //TT=table de transition

FinSi Etat est un etat final alors le mot est reconnusinon le mot n’est pas reconnu

17 de 25

Page 17: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages reconnaissables

Rationnel vs reconnaissable

Theoreme (Kleene)

L est reconnaissable ssi L est rationnel.

En d’autres termes, il est possible de construire un automate apartir de n’importe quelle expression rationnelle et, reciproquement,d’associer une expression rationnelle a tout automate.Les langages rationnels (ou reconnaissables) permettent de definirformellement beaucoup de langages, mais pas tous. Par ex lelangage {anbn, n ∈ N} n’est pas rationnel.⇒ Langages algebriques...

18 de 25

Page 18: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages algebriques

Langages algebriques

Bases sur la notion de reecriture...

Definition

Une grammaire algebrique est un triplet G = (T ,N,P) ou- T est un alphabet fini dit terminal,- N est un alphabet fini dit non-terminal et disjoint de T ,- P est un ensemble fini de regles de production. Une regle estA → u,A ∈ N, u ∈ (N ∪ T )∗

19 de 25

Page 19: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages algebriques

Exemple

T = {a, b}, N = {A,B,S} etP = {S → A,S → B,B → bB,B → ε,A → aA,A → ε}.Convention : Terminaux=minuscules, non-terminaux= majuscules

20 de 25

Page 20: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages algebriques

Reecriture

Definition

Soient f et g deux mots de (N ∪ T )∗. On dit que f se reecrit en gpar application de la regle p : A → u, que l’on note f →p g ssi fest de la forme f = f1Af2 et g = f1uf2.

Une derivation est une sequence de reecritures la forme

f1 →p1 f2 →p2 . . . fn →pn fn+1.

On dit qu’un mot f se derive en un mot g , note f →∗ g si f = gou s’il existe une derivation telle que f1 = f et fn+1 = g .On ne peut reecrire un mot ne contenant aucun elementnon-terminal : un tel mot est dit terminal ou irreductible.

21 de 25

Page 21: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages algebriques

Langage algebrique

Definition

Le langage engendre par une grammaire G a partir de A (appeleaxiome) est l’ensemble des mots irreductibles obtenus parderivation de A : L(G ,A) = {u ∈ T ∗,A →∗ u}. Ce langage est unlangage algebrique.

Ex precedent : mots ne contenant que des a ou que des b.Ex : Soit G = ({a, b}, {S}, {s → aS ,S → Sb,S → ε}). Le langageengendre par la grammaire G est L(G ,S) = a∗b∗.

22 de 25

Page 22: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages algebriques

Quelques proprietes des langages algebriques

I L1 et L2 algebriques ⇒ L1 ∪ L2 et L1.L2 algebriques,

I L1 et L2 algebriques 6⇒ L1 ∩ L2 algebrique,

I tout langage rationnel (reconnaissable) est algebrique.

23 de 25

Page 23: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages algebriques

Arbre de derivation

A tout mot d’un langage algebrique on peut faire correspondre unarbre de derivation qui indique par quelle suite de derivations le mota ete obtenu. La racine de l’arbre est le non-terminal de depart etle mot est obtenu par un parcours en largeur les feuilles de l’arbre.Si un mot peut etre obtenu par deux derivations differentes, lagrammaire est dite ambigue.Ex : G : S → x |y |z |(S)|S ∗ S |S + S est ambigue car u = x + y ∗ zpeut etre genere par deux arbres de derivation differents (les 2derivations correspondant a u = (x + y) ∗ z et u = x + (y ∗ z)).Une version non ambigue de la grammaire precedente est :E → E + T |T ,T → T ∗ F |F ,F → (E )|x |y |z .

24 de 25

Page 24: L2: cours I4c Langages et automates

L2: cours I4c Langages et automates

Langages algebriques

Construction d’une grammaire a partir d’un automate

Chaque etat qi de l’automate correspond a un non-terminal Qi dela grammaire et pour chaque transition (qi , qj) de l’automate, onajoute la regle Qi → aQj , ou a = λ(qi , qj) est l’etiquette de latransition. Le langage engendre par cette grammaire est le memeque l’ensemble des mots reconnus par l’automate.

25 de 25