L2: cours I4c Langages et automates
Olivier Togni, LE2I (038039)3887
Modifi´e le 30 mai 2007
1 de 25
Sommaire
Utiles pour compilation, interpr´etation,...
1. Langages rationnels 2. Langages reconnaissables 3. Langages alg´ebriques
2 de 25 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 d´efinis sur A
- mot vide ∈A∗
- longueur d’un mot u : |u|=nb de lettres.|u|a=nb d’occurences de a dans u.
- op´eration de concat´enation sur A∗ : si u =abc et v =cac alors u.v =abccac.
Rem : op´eration associative (u(v.w) = (u.v)w) mais pas commutative (∃u,v,u.v 6=v.u).
- notation : le mot aaabbab sera raccourci en a3b2ab.
- (A, ., ) est un mono¨ıde (ensemble muni d’une op´eration associative et d’un ´el´ement neutre, mais pas forcement d’inverse
L2: cours I4c Langages et automates Langages rationnels
Langages rationnels
- Langage formel sur A= ensemble fini ou infini de mots de A : L⊂A∗.
- op´erations :
* compl´ementation 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 it´erative : L∗ est l’ensemble des mots form´es par un concat´enation finie de mots de L: L∗ ={} ∪L∪L2∪L3∪. . ..
L+=L∗− {}.
Expressions rationnelles
D´ efinition
Un langage est dit rationnel s’il s’´ecrit de mani`ere finie `a l’aide des op´erations d’union, de produit et de fermeture transitive `a partir des lettres de l’alphabet et du mot vide.
⇒ d´efini par une expression rationnelle. De fa¸con formelle :
D´ efinition
Une expression rationnelle est d´efinie de fa¸con 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
Exemple
Ex : si A={a,b,c}, A∗ = (a∪b∪c)∗ = (a+b+c)∗.
Ex : sur {a,b}, donner les expressions rationnelles correspondant au langages suivants :
I mots ayant 1 seule occurence de b
I mots contenantabab
I mots ne contenant pasabab.
6 de 25 L2: cours I4c Langages et automates
Langages rationnels
Langages reconnaissables
D´ efinition
Un automate fini A est un sextuplet (A,Q,T, λ,I,F) avec : - A alphabet fini appel´e alphabet d’entr´ee,
- 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 orient´e ´etiquet´e (les arcs ont une valeur ou ´etiquette qui est une lettre de A).
L2: cours I4c Langages et automates Langages rationnels
Exemple
Langage reconnu par un automate
Soit r =q0,q1, . . . ,qp un chemin dans A
La trace λ(r) de r est le mot de A∗ form´e par les ´etiquettes port´ees par les arcs qui composent le chemin :
λ(r) =λ(q0,q1)λ(q1,q2). . . λ(qp−1,qp).
D´ efinition
Le langage reconnu par un automate A est l’ensemble des traces de tous les chemins qui partent d’un ´etat initial et aboutissent `a un
´etat final : L(A) ={λ(r)∈A∗,r =q0,q1, . . . ,qp,q0 ∈I,qp ∈F}.
D´ efinition
Un langage L est reconnaissable ssi il existe un automate fini A tel que L=L(A).
9 de 25
Exemple :
Langage reconnu par l’automate de l’ex pr´ec´edant
10 de 25 L2: cours I4c Langages et automates
Langages rationnels
Automates minimaux et complets
Il existe souvent plusieurs solutions d’automates correspondant `a un langage reconnaissable. Il existe une solution utilisant un nombre minimum d’´etats : l’automate minimal. Il existe des algos pour minimiser un automate.
D´ efinition
Un automate est complet ssi ∀q ∈Q,∀a∈A, il existe au moins une transition t d’origine q et d’´etiquette a.
Il est facile de rendre un automate complet en ajoutant un ´etat appel´e puit et toutes les transitions manquantes de chaque ´etat vers ce puit.
L2: cours I4c Langages et automates Langages rationnels
Automates d´ eterministes
D´ efinition
Un automate est d´eterministe 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 et d’´etiquette a.
Un automate non d´eterministe est souvent plus facile `a construire (qu’un d´eterministe), par contre il est plus facile de tester si un mot appartient `a un langage quand on est en pr´esence d’un automate d´eterministe.
Automates d´ eterministes
Pour un automate d´eterministe, on peut d´efinir la fonction ou table de transition δ:Q ×A→Q, qui `a partir d’un ´etat et d’une lettre, donne l’´etat dans lequel on arrive si on suit la transition correspondant `a la lettre.
Ex :
13 de 25
Automates d´ eterministes
Un automate A sera non d´eterministe si au moins une des situations suivantes `a lieu :
- A poss`ede au moins deux ´etats initiaux - A poss`ede des transitions ´etiquet´ees - δ n’est pas une fonction mais une relation.
Il existe des algorithmes pour d´eterminiser un automate, donc il existe toujours une solution d´eterministe ! !
14 de 25 L2: cours I4c Langages et automates
Langages rationnels
Exemple
Construire un automate d´eterministe acceptant le langage (aab+aa+aabb)∗
L2: cours I4c Langages et automates Langages rationnels
Algorithme de simulation d’un automate d´ eterministe
Etat <- etat_initial
Tant Que (il reste des lettres) faire Debut
Lire(lettre)
Etat <- TT[Etat,lettre] //TT=table de transition Fin
Si Etat est un etat final alors le mot est reconnu sinon le mot n’est pas reconnu
Rationnel vs reconnaissable
Th´ eor` eme (Kleene)
L est reconnaissable ssi L est rationnel.
En d’autres termes, il est possible de construire un automate `a partir de n’importe quelle expression rationnelle et, r´eciproquement, d’associer une expression rationnelle `a tout automate.
Les langages rationnels (ou reconnaissables) permettent de d´efinir formellement beaucoup de langages, mais pas tous. Par ex le langage {anbn,n∈N} n’est pas rationnel.
⇒ Langages alg´ebriques...
18 de 25
Langages alg´ ebriques
Bas´es sur la notion de r´e´ecriture...
D´ efinition
Une grammaire alg´ebrique est un triplet G = (T,N,P) o`u - 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 r`egles de production. Une r`egle est A→u,A∈N,u ∈(N ∪T)∗
19 de 25 L2: cours I4c Langages et automates
Langages rationnels
Exemple
T ={a,b}, N ={A,B,S} et
P ={S →A,S →B,B →bB,B →,A→aA,A→}.
Convention : Terminaux=minuscules, non-terminaux= majuscules
L2: cours I4c Langages et automates Langages rationnels
R´ e´ ecriture
D´ efinition
Soient f et g deux mots de (N∪T)∗. On dit que f se r´e´ecrit en g par application de la r`egle p :A→u, que l’on note f →p g ssi f est de la forme f =f1Af2 et g =f1uf2.
Uned´erivation est une s´equence de r´e´ecritures la forme f1 →p1 f2→p2 . . .fn →pn fn+1.
On dit qu’un mot f se d´erive en un mot g, not´e f →∗g si f =g ou s’il existe une d´erivation telle que f1 =f et fn+1 =g.
On ne peut r´e´ecrire un mot ne contenant aucun ´el´ement non-terminal : un tel mot est ditterminal ou irr´eductible.
Langage alg´ ebrique
D´ efinition
Le langage engendr´e par une grammaire G `a partir de A (appel´e axiome) est l’ensemble des mots irr´eductibles obtenus par
d´erivation de A : L(G,A) ={u ∈T∗,A→∗ u}. Ce langage est un langage alg´ebrique.
Ex pr´ec´edent : mots ne contenant que des a ou que des b.
Ex : Soit G = ({a,b},{S},{s →aS,S →Sb,S →}). Le langage engendr´e par la grammaire G est L(G,S) =a∗b∗.
22 de 25
Quelques propri´ et´ es des langages alg´ ebriques
I L1 et L2 alg´ebriques ⇒L1∪L2 et L1.L2 alg´ebriques,
I L1 et L2 alg´ebriques 6⇒L1∩L2 alg´ebrique,
I tout langage rationnel (reconnaissable) est alg´ebrique.
23 de 25 L2: cours I4c Langages et automates
Langages rationnels
Arbre de d´ erivation
A tout mot d’un langage alg´ebrique on peut faire correspondre un arbre de d´erivation qui indique par quelle suite de d´erivations le mot
`
a ´et´e obtenu. La racine de l’arbre est le non-terminal de d´epart et le mot est obtenu par un parcours en largeur les feuilles de l’arbre.
Si un mot peut ˆetre obtenu par deux d´erivations diff´erentes, la grammaire est dite ambigu¨e.
Ex : G :S →x|y|z|(S)|S∗S|S+S est ambigu¨e car u =x +y ∗z peut ˆetre g´en´er´e par deux arbres de d´erivation diff´erents (les 2 d´erivations correspondant `au = (x +y)∗z et u =x + (y ∗z)).
Une version non ambigu¨e de la grammaire pr´ec´edente est : E →E +T|T,T →T ∗F|F,F →(E)|x|y|z.
L2: cours I4c Langages et automates Langages rationnels
Construction d’une grammaire ` a partir d’un automate
Chaque ´etat qi de l’automate correspond `a un non-terminal Qi de la grammaire et pour chaque transition (qi,qj) de l’automate, on ajoute la r`egle Qi →aQj, o`u a=λ(qi,qj) est l’´etiquette de la transition. Le langage engendr´e par cette grammaire est le mˆeme que l’ensemble des mots reconnus par l’automate.