L2: cours I4c Langages et automates
Olivier Togni, LE2I (038039)3887
olivier.togni@u-bourgogne.fr
Modifi´e le 31 mai 2007
L2: cours I4c Langages et automates
Sommaire
Utiles pour compilation, interpr´etation,...
1. Langages rationnels 2. Langages reconnaissables 3. Langages alg´ebriques
Les mots
- alphabet=ensemble fini de symboles (lettres) - mot sur alphabetA: suite finie de lettres deA -A∗=ensemble des mots d´efinis sur A
- mot vide∈A∗
- longueur d’un motu :|u|=nb de lettres. |u|a=nb d’occurences de adansu.
- op´eration de concat´enation surA∗ : siu =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 motaaabbab sera raccourci ena3b2ab.
- (A, ., ) est un mono¨ıde(ensemble muni d’une op´eration associative et d’un ´el´ement neutre, mais pas forcement d’inverse comme dans un groupe).
L2: cours I4c Langages et automates Langages rationnels
Langages rationnels
- Langage formel surA= ensemble fini ou infini de mots de A: L⊂A∗.
- op´erations :
* compl´ementation L={u∈A∗,u 6∈L}
* unionL1∪L2 ={u ∈A∗,u∈L1 ouu ∈L2}
* intersectionL1∩L2 ={u ∈A∗,u∈L1 et u∈L2}
* produitL1.L2 ={u ∈A∗,u =u1u2,u1 ∈L1 etu2∈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 uneexpression 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.
L2: cours I4c Langages et automates Langages rationnels
Exemple
Ex : siA={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 pas abab.
Langages reconnaissables
D´efinition
Un automate finiA 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 deA).
L2: cours I4c Langages et automates Langages reconnaissables
Exemple
Langage reconnu par un automate
Soitr =q0,q1, . . . ,qp un chemin dansA
Latraceλ(r) der est le mot deA∗ 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 automateAest 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 finiA tel que L=L(A).
L2: cours I4c Langages et automates Langages reconnaissables
Exemple :
Langage reconnu par l’automate de l’ex pr´ec´edant
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 estcomplet 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 puitet toutes les transitions manquantes de chaque ´etat vers ce puit.
L2: cours I4c Langages et automates Langages reconnaissables
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 :
L2: cours I4c Langages et automates Langages reconnaissables
Automates d´ eterministes
Un automateAsera 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 ! !
Exemple
Construire un automate d´eterministe acceptant le langage (aab+aa+aabb)∗
L2: cours I4c Langages et automates Langages reconnaissables
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...
L2: cours I4c Langages et automates Langages alg´ebriques
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 ditterminal,
- N est un alphabet fini ditnon-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)∗
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 alg´ebriques
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´erivationest une s´equence de r´e´ecritures la forme f1→p1 f2 →p2. . .fn→pn fn+1.
On dit qu’un motf se d´erive en un motg, not´ef →∗g si f =g ou s’il existe une d´erivation telle que f1 =f etfn+1 =g.
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 aou que desb.
Ex : SoitG = ({a,b},{S},{s →aS,S →Sb,S →}). Le langage engendr´e par la grammaire G est L(G,S) =a∗b∗.
L2: cours I4c Langages et automates Langages alg´ebriques
Quelques propri´ et´ es des langages alg´ ebriques
I L1 etL2 alg´ebriques⇒L1∪L2 etL1.L2 alg´ebriques,
I L1 etL2 alg´ebriques6⇒L1∩L2 alg´ebrique,
I tout langage rationnel (reconnaissable) est alg´ebrique.
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 diteambigu¨e.
Ex :G :S →x|y|z|(S)|S ∗S|S +S est ambigu¨e caru =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 etu =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 alg´ebriques
Construction d’une grammaire ` a partir d’un automate
Chaque ´etatqi 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`egleQi →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.