Download - Cours Info Automate Grammaire

Transcript

LesMathmatiques.net

AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUESMarie-Paule MullerVersion du 31 mai 2007

Ce document est une suite au cours LANGAGES-GRAMMAIRES-AUTOMATES, que le lecteur trouvera aussi sur le site LesMathmatiques.net . Il prsente quelques mthodes mathmatiques pour linformatique thorique qui pourront servir d'entre en matire avant ltude dun cours spcialis de compilation. Lobjectif, ici, est de comprendre ce quest un automate pile et son lien avec les grammaires algbriques. Cette tape supplmentaire permettra aussi daborder ultrieurement ltude des machines de Turing.

Table des matires.CHAP 1 AUTOMATE PILE DFINITIONS ET MODLES 1.1 Introduction. 1.2 Dfinitions et exemple. 1.3 Gnralisation de la forme des transitions. 1.4 Restriction de la forme des transitions. 1.5 Autres modes de reconnaissance. Configurations. Reconnaissance par tat acceptant. Reconnaissance par pile vide. Configurations. CHAP. 2 EQUIVALENCE DES MODES DE RECONNAISSANCE. 2.1 Equivalence des modes dinitialisation (tats acceptants spcifis). 2.2 Equivalence des modes de reconnaissance. 2.3 Laquelle de ces variantes allons-nous privilgier ? CHAP. 3 AUTOMATES PILE ET GRAMMAIRES ALGBRIQUES 3.1 Automate pile associ une grammaire algbrique. 3.2 Construction simplifie (grammaire sous forme de Greibach). 3.3 Exemple. 3.4 Grammaire algbrique associe un automate pile. CHAP. 4 QUELQUES OPRATIONS SUR LES LANGAGES ALGBRIQUES 4.1 Oprations rgulires sur les langages algbriques. 4.2 Intersections et complments de langages. CHAP. 5 LE LEMME DE LETOILE 5.1 Le Lemme de lEtoile (cas dune grammaire algbrique). 5.2 Exemples dapplication du Lemme de lEtoile. 3 3 4 7 8 8 9 9 9 10 10 10 12 14 14 14 15 16 20 20 21 23 23 25

LesMathmatiques.net CHAP. 6 AUTOMATES PILE DTERMINISTES 6.1 Dfinition et exemple. 6.2 Discussion des modes de reconnaissance. 6.3 Des exemples parmi les palindromes. RFRENCES 27 27 28 29 31

Marie-Paule MULLER Adresse enseignement : IUT Robert-Schuman B.P. 10315, F-67411 Illkirch Cedex ml : [email protected] Adresse recherche : IRMA - UMR 7501 du CNRS 7 rue Ren Descartes F-67084 Strasbourg Cedex ml : [email protected]

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 2

LesMathmatiques.net

Chap. 1 Automate pile Dfinitions et modlesConventions. En accord avec la convention maintenant adopte par la plupart des rfrences bibliographiques, nous noterons la chane vide, ou une tiquette vide pour une transition. Dornavant, nous dirons simplement automate pour un automate, cest--dire dans le cas o des transitions dtiquette vide sont autorises. Lorsque ltiquette dune transition devra tre non vide, nous le prciserons. On rappelle que dans une pile, llment qui se trouve en haut est le dernier avoir t empil et le premier que lon peut dpiler. En reprsentant une pile lhorizontale , par une chane de symboles, on crit de gauche droite les symboles tels quils figurent de haut en bas dans la pile. Le premier symbole (celui de gauche) est celui du haut de la pile.

1.1 Introduction.Nous avons vu que les automates reconnaissent les langages qui peuvent tre engendrs par les grammaires rgulires. Le problme : peut-on dcrire un dispositif plus gnral, associ de manire naturelle aux grammaires algbriques ? Rappelons un exemple simple, sur lalphabet = {a, b}. Il est trs facile dcrire une grammaire algbrique qui engendre le langage L = {an bn : n 0 } ; il suffit pour cela de considrer la grammaire S aSb | . Nanmoins, le Lemme de lEtoile (cf. [1] ) nous permet de prouver que L ne peut pas tre engendr par une grammaire rgulire. Lide intuitive est quavec une grammaire rgulire, les symboles sont crits conscutivement (de gauche droite), et quil faut donc compter les symboles a au fur et mesure quon les crit, pour pouvoir ensuite les faire suivre dautant de symboles b . Un dispositif qui reconnat L doit tre capable de mmoriser. En fait, il suffira de coupler un automate une mmoire rudimentaire (une pile, suppose de capacit illimite). Voici un tel exemple. Lautomate reprsent ci-dessous est assorti dune pile, vide au dpart. En parcourant lautomate, on empile un jeton chaque passage par la transition dtiquette a , et on dpile un jeton on doit pouvoir le dpiler en passant par une transition dtiquette b . On laisse la pile inchange par la transition dtiquette (vide) de s0 ltat 1 . Pour quune chane teste w{a, b}* soit accepte, on convient que la pile doit tre de nouveau vide lorsque w est entirement lue, en arrivant ltat final. Il est facile de se convaincre que le langage reconnu est L = {an bn : n 0 }. s 10

Lautomate sous-jacent

a

b

Pour dautres langages, une pile se comportant comme un simple compteur ne suffira pas ; autrement dit, il faudra disposer de jetons marqus avec des symboles qui les diffrencient. Un exemple, sur lalphabet = {a, b}, en est le langage des palindromes.M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 3

LesMathmatiques.net Sur lalphabet = {a, b}, un palindrome est une chane qui peut se lire indiffremment de gauche droite ou de droite gauche. Par exemple, les chanes baababaab , bbb , abababa , aabbaa sont des palindromes. On peut aisment crire une grammaire algbrique qui engendre le langage des palindromes : S | a | b | aSa | bSb . Il est assez facile aussi de dcrire directement un automate pile qui reconnat ce langage : en se servant de deux symboles de pile, disons = {P, Q} , on peut empiler ou dpiler P (resp. Q ) lorsquon lit un symbole a (resp. b ) dans la chane teste ; pour contraindre le dispositif ne dpiler quaprs que tous les empilements aient t faits, il faut disposer dune transition ad hoc (elle servira au passage du milieu dun palindrome accept). En voici lautomate sous-jacent, pour lequel il restera encore crire prcisment leffet de chaque transition sur la pileS0 a,b, a,b 1

a,b

Mais pour tester une chane donne avec un tel dispositif, autrement dit laccepter (si cest un palindrome) ou la rejeter (dans le cas contraire), les choses sont moins simples quelles en ont lair ! Il faut non seulement ttonner pour trouver le milieu de la chane, mais encore mmoriser (dans une pile) les symboles lus jusqu cet hypothtique milieu pour pouvoir les comparer ensuite, en les dpilant un un, avec ceux qui sont lus par la suite.

1.2 Dfinitions et exemple.On trouve dans la littrature plusieurs dfinitions, qui diffrent lgrement. Elles correspondent en fait au choix de lun des modes de reconnaissance possibles : par pile vide, ou par tat acceptant, ou encore par pile vide et tat acceptant. Il est donc fait mention, selon les cas, dun symbole initial de pile et/ou dtats acceptants. Pour certains auteurs, une transition doit ncessairement dpiler le symbole en haut de la pile avant dempiler une chane de symboles ; pour dautres, on peut ne rien dpiler (dpiler ) avant dempiler des symboles. Souvent, un symbole de pile initial est prcis ; il est parfois dit de fond de pile ou de pile vide (bien quil ne remplisse pas toujours cette fonction). Toutes ces variantes savrent tre quivalentes, dans le sens o elles reconnaissent les mmes langages (cf. Chap. 2 ). Nous adoptons le point de vue a priori le plus simple possible, avec le parti pris de nintroduire des lments techniques supplmentaires que lorsquils nous seront utiles pour la suite. Dfinition 1. Un automate pile est un 6-uplet A = ( , E, so , F, , ) o est lensemble (fini) des symboles E est lensemble (fini) des tats so E est ltat initial (unique) F E est le sous-ensemble des tats acceptants est un ensemble fini de symboles, spcifiques la pile est lensemble des transitions :M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 4

LesMathmatiques.net une transition est un triplet ([i,P] , a , [j,Q] ) , o i et j sont des tats, a U {} est ltiquette de la transition P, Q U {}. La transition ([i,P] , a , [j,Q] ) fait passer de ltat i ltat j en dpilant le symbole P du haut de la pile puis en empilant le symbole Q . Pour que cette transition puisse tre emprunte, il faut pouvoir dpiler P : ce symbole doit donc figurer en haut de la pile (sil est non vide). On peut aussi reprsenter une transition donne ([i,P] , a , [j,Q] ) de manire plus visuelle, laide dune flche munie d'une tiquette a U {} : a [i,P] [j,Q] Remarque. De manire un peu plus formelle, lensemble des transitions est souvent prsent comme une relation , ou bien comme une fonction partielle . Cest en effet un sous-ensemble de lensemble E x ( U{}) x ( U{}) x E x ( U{}). On peut aussi le voir comme une application dfinie sur E x ( U{}) x ( U{}) , valeurs dans lensemble des sous-ensembles de E x ( U{}) . Dfinition 2. Pour un automate pile A , une chane w * est reconnue par tat acceptant et pile vide sil y a une suite de transitions partant de ltat initial avec la pile vide, dont la suite des tiquettes est w , et aboutissant un tat acceptant o la pile est vide. Le langage reconnu est l'ensemble de toutes les chanes reconnues. Il est not L(A) . De manire quivalente, on dit aussi quune chane (resp. un langage) est accept(e) par un automate pile A . Deux automates pile reconnaissant le mme langage seront dits quivalents. Nous obtenons lautomate sous-jacent en oubliant les symboles de pile dans les transitions. Un automate pile peut donc se reprsenter comme un automate, l'aide d'un graphe orient et tiquet, condition de prciser laction sur la pile de chacune des transitions. En fait, les symboles de pile servent daiguillages plutt que de compteurs : une transition est verrouille si le symbole dpiler ne correspond pas au haut de pile courant. Exemple 1. Le langage L = {an bn : n 0 } est reconnu par lautomate pile un seul symbole de pile, disons = {u}, dont lautomate sous-jacent ests0 a a 1 b b 2

et dont les transitions sont

([s0, ] , a , [1, u] ) ([1 , ] , a , [1, u] ) ([1 , u] , b , [2, ] ) ([2 , u] , b , [2, ] )

Ici, ltat initial est non rcursif et il ny a pas de transition dtiquette vide. Une chane peut tre rejete parce quelle est dj refuse par lautomate sous-jacent ; elle peut aussi tre rejete du fait de la pile : on arrive ltat final avec la pile non vide (cest le cas pour aaabb ), ou la lecture de la chane est bloque parce que la pile est vide alors quil faudrait dpiler encore un symbole (exemple : aabbb ).M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 5

LesMathmatiques.net Lautomate sous-jacent ne contient quune partie de linformation ; pour une reprsentation graphique complte dun automate pile, il faut prciser laction sur la pile avec ltiquette de chaque flche. Les conventions diffrent selon les auteurs. On peut adopter la suivante, qui a lavantage de sparer distinctement le symbole lu dans la chane teste et les symboles de pile (formellement, ce sont parfois les mmes) :s0 a ( ; u) 1 b (u ; ) 2

a ( ; u)

b (u ; )

Un automate pile peut se dcrire aussi laide dune table dans laquelle les transitions sont spcifies. Les lignes correspondent aux tats, les colonnes aux tiquettes possibles. Dans les cases figurent les triplets (tat darrive ; symbole dpil ; symbole empil) ; il peut y en avoir plusieurs par case, ou aucun. Les tats particuliers sont signals dans les dernires colonnes. s0 1 2 a 1;;u 1;;u b 2;u; 2;u; x accept

x

tat initial

Exemple 2. Donnons une description complte des transitions de lautomate pile dj prsent pour les palindromes : a ( ; ) b ( ; ) ( ; )

S0

1

a ( ; P) b ( ; Q)

a (P ; ) b (Q ; )

Voici la table des transitions de cet automate pile : a s0 ; ; P 1;; 1;P; b s0 ; ; Q 1;; 1;Q; 1;;accept tat initial

s0

1

x

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 6

LesMathmatiques.net

1.3 Gnralisation de la forme des transitions.On gnralise lgrement la notion dautomate pile en autorisant dans les transitions lempilement dune chane de plusieurs symboles de pile. Noter quon ne dpile toujours quun symbole (ou aucun) : il faut en effet quun symbole soit vu en haut de la pile avant de pouvoir le dpiler, alors quun empilement est toujours possible. Dfinition. Une transition gnralise dun automate pile est un triplet de la forme ([i,P] , a , [j, M] ) , o i et j sont des tats, P U{} , et M * . Pour fixer les ides, voici une illustration dune telle transition. Ici, P, Q, R et T sont des symboles de pile, et la chane M = TRTQ est empile aprs le dpilement de P : [i,P] a [j,TRTQ]

Par convention, cest le symbole le plus gauche de la chane M que lon retrouvera en haut de la pile : T R T Q a

P

Proposition. Tout automate pile ayant des transitions gnralises peut tre transform en un automate pile qui reconnat le mme langage. Preuve. Il suffit dintroduire suffisamment de nouveaux tats pour pouvoir remplacer chaque transition gnralise par une chane de transitions convenables ralisant la mme opration. Exemple. La transition gnralise [i,P] a [j,TRTQ]

peut tre remplace par le groupe de quatre transitions suivantes : [i,P] a [j1 ,Q] [j1 , ] [j2 ,T] [j2 , ] [j3 ,R] [j3 , ] [j ,T]

les trois nouveaux tats j1 , j2 , j3 ayant t introduits dans ce seul but.

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 7

LesMathmatiques.net

1.4 Restriction de la forme des transitions.Voici une autre transformation dun automate pile ; elle permet de navoir que des transitions du modle le plus rudimentaire possible : seule une action est effectue chaque tape. De manire vidente, une transition a [i,P]

[j,Q]

peut tre remplace par le groupe des trois transitions suivantes, en utilisant deux tats supplmentaires i et i que lon ajoute lautomate dans ce seul but : a [i,P] [i,P] [i,P] [i, ] [i, ]

[j,Q] ] Remarque 1. Nous pourrions aussi imposer la premire transition ([ i , ] , a , [ i, ]) (au lieu de ([ i , P] , a , [ i , P]) ) puisque la transition suivante doit ncessairement dpiler P . Mais dans le cas o lautomate pile donn est dterministe (notion que nous verrons au Chap. 6), ce choix aurait linconvnient de ne pas conserver le dterminisme. La proposition suivante est ainsi tablie. Proposition. Tout automate pile peut tre transform en un automate pile quivalent dont les transitions sont de la forme a [i, P] [j, P] a U {} , P U {} ou [i, P] [j, ] P ou Remarque 2. Une transition ([ i , ] , a , [ j , ]) laisse la pile inchange quel que soit son tat, mme vide. Elle ne remplace la famille des transitions {([i, P] , a , [j, P]) , P } que dans le cas o la pile est non vide. La transition ([i, P] , a , [j, P]) laisse aussi la pile inchange, mais elle ne peut sappliquer que si le symbole P figure en haut de la pile. Plus gnralement, une transition ([ i , ] , a , [ j , M]) o M * nquivaut la famille de transitions {([ i , P] , a , [ j , MP]) , P } que si la pile est garantie non vide. Les modifications faites jusquici taient locales , en ce sens quon examinait les transitions une une. Nous adoptons dornavant un point de vue plus global sur les automates pile. [i, ] [j, P] P

1.5 Autres modes de reconnaissance. Configurations.Nous introduisons des variantes qui ne portent pas sur la forme des transitions, mais sur ltat dans lequel doit tre la pile pour quune chane soit accepte.M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 8

LesMathmatiques.net On rappelle que le mode de reconnaissance standard que nous avons adopt (1.2 Dfinition 1) est celui par tat acceptant et pile vide. Reconnaissance par tat acceptant. Avec cette convention, une chane teste par un automate pile A = ( , E, so , F, , ) est accepte si, partir de ltat initial, elle peut tre entirement lue en arrivant un tat de F , ceci quel que soit le contenu de la pile ce moment-l. La pile est suppose vide au dpart, mais on peut aussi convenir dun certain contenu initial qui sera impos. Reconnaissance par pile vide. Ce mode de reconnaissance autorise un automate pile accepter une chane si, partir de ltat initial, elle peut tre entirement lue en vidant la pile. Il ny a donc pas lieu de prciser un sous-ensemble dtats acceptants, il est sous-entendu que F = E (tous les tats sont acceptants). Il y a videmment des langages qui ne contiennent pas la chane vide. Afin que celle-ci ne soit pas systmatiquement accepte ds ltat initial, on convient quau dpart, la pile est non vide : elle doit contenir un symbole particulier qui initialise son contenu. Ce symbole initial de pile sera indiqu dans la dfinition. Ainsi par exemple, la notation A = ( , E, so , , p1 , ), o p1 , dsigne un automate pile dont le contenu initial de la pile est le symbole p1 . Cela nimplique pas que ce symbole initial de pile restera en fond de pile, ni mme que la pile restera non vide durant le test dune chane. Nanmoins, nous verrons comment modifier un automate pile de manire garantir que la pile reste non vide jusqu lacceptation dune chane. Ce raffinement technique sera important au moment de construire une grammaire algbrique qui produit le langage reconnu par un automate pile donn. Configurations. Dfinition. Une configuration est un triplet (i , , u ) E x * x * . La chane * reprsente le contenu (complet, lu de haut en bas) de la pile ltat i , et u * est ce qui reste encore lire partir de ltat i et du contenu de pile indiqus. La transition ([ i , P] , a , [ j , M]) permet de passer de la configuration (i , P , av ) la configuration ( j , M , v ) , o * , v * : le symbole a U {} a t consomm dans la chane av et le contenu de la pile est pass de P M . Dans une configuration initiale, nous sommes ltat initial so et la chane de * est une chane w tester. La pile est soit vide, soit avec le symbole initial de pile sil en est fait mention dans la spcification de lautomate pile. Les symboles de w forment la liste des tiquettes des transitions successives qui seront emprunter en circulant dans lautomate. Dans une configuration acceptante, il ny a plus de symboles de consommer ; elle est de la forme (i , , ) , avec des conditions sur i et qui sont fixes par le mode dacceptation de lautomate pile : i F si un ensemble F dtats acceptants est spcifi, et/ou vide. La chane teste w * est accepte si une suite de transitions permet de passer de la configuration initiale avec w jusqu une configuration acceptante.M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 9

LesMathmatiques.net

Chap. 2 Equivalence des modes de reconnaissance.Lobjectif est de prouver que si un langage est reconnu selon un certain mode de reconnaissance, alors ce langage est aussi reconnu selon nimporte quel autre de ces modes. Les constructions qui suivent peuvent aussi tre vues comme une srie dexercices permettant de shabituer la manipulation des automates pile et des notions vues jusqu prsent. Le lecteur press peut se reporter directement la section 2.3 , o la forme exacte de lautomate pile qui sera utilis par la suite est prcise dans la Proposition.

2.1 Equivalence des modes dinitialisation (tats acceptants spcifis).Pour les modes de reconnaissance qui spcifient des tats acceptants, la question de la configuration initiale avec ou sans symbole initial de pile est vite rgle : ces deux types de dispositifs sont quivalents. En effet : i) si A = ( , E, so , F, , ) est avec pile initialement vide, il suffit dajouter un nouvel tat (non acceptant) so devenant ltat initial, de choisir un symbole initial de pile p1 dans , et dajouter une transition ([so , p1] , , [so , ]) qui dpile p1 . Lautomate A = ( , E U{so}, so , F , , p1 , ) ainsi obtenu reconnat le mme langage que A , avec le mme mode de reconnaissance (soit par tat acceptant, soit par tat acceptant et pile vide). ii) si A = ( , E, so , F, , p1 , ) a un symbole initial de pile p1 , on procde de manire analogue en ajoutant une transition ([so , ] , , [so , p1]) qui empile p1 . On obtient A = ( , E U{so}, so , F , , ) , avec pile initialement vide, qui reconnat le mme langage.s0 Lautomate sous-jacent

s0

A

2.2 Equivalence des modes de reconnaissance.1. Les langages reconnus par tat acceptant sont reconnus par tat acceptant et pile vide. Soit A = ( , E, so , F , , ) qui reconnat par tat acceptant. Il faut arriver vider la pile lorsquune chane est accepte. On ajoute donc un nouvel tat, disons f , acceptant, et des transitions qui vident la pile partir des tats acceptants. Leurs tiquettes sont vides et f fonctionne comme un pige : ainsi, le nouveau dispositif naccepte que les chanes acceptes par A . Prcisons les transitions ajoutes : ([ i , P] , , [ f , ]) , pour tout P et pour tout i F U{f }.

s0 Lautomate sous-jacent

A

f

page 10

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

LesMathmatiques.net Lautomate A = ( , E U{f }, so , F U{f }, , ) ainsi obtenu reconnat, par tat acceptant et pile vide, le langage reconnu par A . Cette construction peut se faire de la mme faon partir dun automate avec symbole initial de pile A = ( , E, so , F , , p1 , ) . 2. Les langages reconnus par tat acceptant et pile vide sont reconnus par tat acceptant. Soit A = ( , E, so , F , , ) qui reconnat par tat acceptant et pile vide. Sa pile est initialement vide. La construction dun automate quivalent A qui reconnat par tat acceptant est un peu plus fine que la prcdente : en un tat acceptant de A , il faut un moyen de reconnatre que la pile est vide et, lorsque cest le cas, une action doit tre dclenche : transiter vers un tat terminal introduit dans ce but. Il faut donc introduire aussi, via un nouvel tat initial, un nouveau symbole de pile dont le seul rle est de signaler quon atteint le fond de la pile ( ne pas confondre avec un simple symbole initial de pile). On ajoute donc : un nouveau symbole de pile, que nous notons deux nouveaux tats : so qui devient ltat initial (ltat so est banalis) f qui sera lunique tat acceptant les transitions ([so , ] , , [so , ]) (empile dans la pile initialement vide) ([ i , ] , , [ f , ]) pour tout i F (envoie vers f si est dtect) s0

s0

A

f

reste au fond de la pile

Une fois mis dans la pile, le symbole ne peut pas tre dpil par des transitions de A . Il est dpil par les nouvelles transitions aboutissant f . La pile nest vide quaux tats so (initial) et f (acceptant). Lautomate pile A = ( , E U{so , f }, so , {f }, U{} , ) obtenu reconnat, par tat acceptant, le langage que reconnat A . Cette construction peut se faire de faon analogue partir dun automate qui a un symbole initial de pile A = ( , E, so , F , , p1 , ) . Dans cette situation, le symbole ajout peut aussi tre pris comme symbole initial de pile pour le nouvel automate (le symbole p1 est banalis). La premire transition ajouter doit tre ([so , ] , , [so , p1]) . Elle empilera p1 audessus de , comme il se doit pour faire la jointure avec la partie ancienne du dispositif (les transitions qui sont dj dans A ). On remarque que la pile nest vide quen f , ce qui va nous tre utile dans la prochaine construction.M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 11

LesMathmatiques.net 3. Les langages reconnus par tat acceptant et pile vide sont reconnus par pile vide. Soit A qui reconnat par tat acceptant et pile vide. Un automate quivalent A qui reconnat par pile vide (avec un symbole initial de pile) sobtient aisment en adaptant la construction ci-dessus pour laquelle, on la vu, la pile nest vide quen f et ventuellement en so (selon le mode dinitialisation de la pile). Si A = ( , E, so , F , , ) est pile initialement vide, il suffit dintroduire le seul tat supplmentaire f en laissant so en tat initial, mais avec comme symbole initial de pile : A = ( , E U{f }, so , U{} , , ) Dans le cas o la pile de A = ( , E, so , F , , p1 , ) est initialise par un symbole p1 , la construction dj faite la fin de 2. convient telle quelle, il suffit de ne pas spcifier dtat acceptant : A = ( , E U{so , f }, so , U{} , , ) . La pile est maintenant initialise par le symbole de fond de pile . 4. Les langages reconnus par pile vide sont reconnus par tat acceptant et pile vide. Ce point est vident : tous les tats sont considrs comme acceptants. On a toutefois un automate avec symbole initial de pile. Pour obtenir un automate dont la pile est initialement vide, il faut encore ajouter un nouvel tat initial (non acceptant), comme en 2.1, ii).

2.3 Laquelle de ces variantes allons-nous privilgier ?Lobjectif principal venir sera dassocier une grammaire algbrique un langage reconnu par un automate pile. On peut penser quune rgle de grammaire devrait correspondre une transition. Mais le fait de pouvoir, ou non, emprunter une transition donne ne dpend pas seulement de ltat courant, il dpend aussi du symbole en haut de pile ; en fait, tout le parcours futur est conditionn par le contenu courant de la pile. Une variable de la grammaire devrait donc avoir pour paramtres les tats et les symboles de pile. Or une rgle de grammaire consiste rcrire une variable : celle-ci est consomme et remplace (par une chane). Par analogie, le symbole du haut de pile devra tre dpil avant dtre remplac (par une chane empile). Ces considrations (purement intuitives) nous amneront privilgier les automates dont toutes les transitions commencent par dpiler un symbole de pile, donc avec une pile non vide jusqu lacceptation dune chane du langage (cf. Chap. 1 1.4., Remarque 2), qui se fera par pile vide. La construction faite en 2.2. 2. sera donc particulirement utile.

Reprenons un automate pile A = ( , E, so , F, , ) selon la dfinition standard pose (Chap.1, 1.2). La pile est initialement vide, et la reconnaissance se fait par tats acceptants et pile vide. La proposition suivante dcrit la forme dun automate transitions gnralises (cf. Chap.1, 1.3) qui reconnat par pile vide le mme langage que A . La construction donne dans sa preuve reprend et fait la synthse des points 3. et 4. ci-dessus.

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 12

LesMathmatiques.net Proposition. Tout automate pile A = ( , E, so , F, , ) est quivalent un automate pile ( transitions gnralises) A = ( , E, so , , , ) qui vrifie les proprits suivantes : A a un symbole initial de pile , et reconnat par pile vide. Aucune transition naboutit ltat initial so . Il y a un (unique) tat f E ayant la proprit que - aucune transition nest issue de f - et toutes les transitions aboutissant f sont de la forme [i, ] [ f, ] (dpilement strict de ) Toutes les autres transitions ( j f ) sont de lun des types suivants, o P : [i, P] [i, P] [i, P] a [ j, P] [ j, QP] [ j, ] a U{}(la pile reste inchange)

Q , Q (empilement strict de Q , Q ) P(dpilement strict de P, P )

Preuve de la proposition. Quitte faire les transformations locales dcrites en 1.4 , on peut supposer que les transitions de A sont de la forme ([i, ], a , [j, ]) , ([i, P], a , [j, P]) , ([i, P], , [j, ]) ou ([i, ], , [j, P]) avec P et a U{} . On ajoute un symbole de pile, et deux tats : = U {}, o le symbole est choisi tel que (quitte changer une notation). E = E U {so , f }, o f E et so E . Ltat so est introduit dans le seul but dobtenir la non rcursivit de ltat initial. Dcrivons lensemble des transitions : - on admet telles quelles les transitions de A qui dpilent un symbole, cest--dire de la forme ([i, P] , , [j, ] ) , avec P - chaque transition de A de la forme ([i, ] , a , [j, Q]) est remplace par la famille de transitions { ([i, P] , a , [j, QP] ) , P U{} } (symboles a , Q vides ou non) on ajoute les transitions ([i, ] , , [f , ]) , pour tout i F on ajoute une transition issue de ltat initial : ([so , ] , , [so , ]) .

s0 Lautomate sous-jacent

s0

A

f

est en fond de pile

Le symbole initial de pile restera en fond de pile jusqu larrive en f , ce qui garantit que la pile restera non vide. Le symbole en haut de la pile signale laquelle des transitions ([i, P], a , [j, QP]) peut se substituer ([i, ] , a , [j, Q]) : ce symbole est dpil, puis remis sur la pile, puis Q est empil (cf. Chap. 1, 1.4. , Remarque 2).M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 13

LesMathmatiques.net

Chap. 3

Automates pile et grammaires algbriques

Les langages produits par les grammaires algbriques (dites aussi : hors-contexte) sont les langages reconnus par les automates pile. Les constructions respectives se font explicitement.

3.1 Automate pile associ une grammaire algbrique.La construction trs gnrale qui suit parat un peu formelle ; nanmoins, elle peut se faire directement partir de nimporte quelle grammaire algbrique. Thorme. Soit G une grammaire algbrique. Le langage L(G) engendr par G est reconnu par un automate pile. Preuve du thorme. Soit G = (, V, S, P ) une grammaire algbrique. On rappelle les notations : V dsigne lensemble des variables, laxiome S V , et P est lensemble des rgles de production, qui sont de la forme A M o A V et M ( U V)*. Pour obtenir un automate reconnaissant par pile vide (donc avec un symbole initial de pile), il nous suffit dun tat : soit E = {s0}. Les symboles de pile sont les symboles terminaux et les variables : = U V . Le symbole initial de pile est S . Chaque rgle de grammaire A M , o M ( U V)* , fournit une transition dtiquette vide, dont leffet sur la pile est de remplacer A par la chane M : [s0 , A] [s0 , M ] Il reste encore ajouter les transitions qui dpilent un symbole terminal quand il apparat en haut de la pile. Ce symbole passe alors en tiquette. Pour tout a : a [s0 , a] [s0 , ] Lautomate pile obtenu est de la forme A = ( , {s0}, so , U V, S , ) . Cette construction sadapte aisment si lon veut obtenir un automate pile initialement vide qui reconnat par tat acceptant et pile vide (cf. 2.2. 4. et 2.1. ii) ).

3.2 Construction simplifie (grammaire sous forme de Greibach).Rappelons que toute grammaire algbrique peut tre transforme, par un algorithme, en une grammaire quivalente qui est sous la forme normale de Greibach (voir [1] ). Nous considrons maintenant que la grammaire G = (, V, S, P ) est dj sous forme normale de Greibach. De ce fait, toutes les rgles de production sont de l'un des types suivants : S A aM si la chane vide est dans le langage engendr L(G). o A V , a et M (V{S})*

On remarquera, en particulier, que laxiome S est non rcursif.

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 14

LesMathmatiques.net Dans cette situation o les rgles ( part la rgle vide S ) sont formes dun symbole terminal suivi dune chane de variables, la construction prcdente peut tre encore simplifie : il suffit de prendre les seules variables comme symboles de pile, soit = V , de mettre demble en tiquette le symbole terminal qui figure en prfixe dune rgle, et dempiler la chane de variables. Pour une rgle A a A1 A2 An : transition [s0 , A] a [s0 , A1 A2 An]

Le symbole A est dpil, la chane A1 A2 An est empile. On retrouve A1 en haut de la pile, et cest aussi la variable prte tre rcrite la prochaine drivation gauche. Si la rgle vide S est dans P , la transition correspondante dpile simplement le symbole initial de pile S . La chane vide est ainsi accepte. Lautomate pile obtenu est de la forme A = ( , {s0}, so , V, S , ) . Une suite de drivations gauche S => w L(G) correspond un cheminement dans lautomate pile ; les prfixes terminaux obtenus correspondent la suite des tiquettes lues, la pile va contenir les chanes de variables concatnes ces prfixes terminaux, la variable qui sera rcrite ltape suivante figurant en haut de la pile. En particulier, la proposition suivante est tablie. Proposition. Soit G une grammaire algbrique. On peut construire un automate pile reconnaissant par pile vide le langage L(G) , dont toutes les transitions ont une tiquette non vide, part une transition servant exclusivement la reconnaissance de la chane vide dans le cas o celle-ci est dans L(G) . En testant une chane avec un tel automate pile de type Greibach , la longueur des cheminements explorer est limite la longueur de la chane, puisque les tiquettes des transitions sont non vides.

3.3 Exemple.Reprenons notre langage L = {an bn : n 0 } . Il est engendr par la grammaire algbrique G1 : S aSb | . La premire construction donne lieu aux quatre transitions suivantes, avec lensemble des symboles de pile {S , a , b } : G1 : S aSb | [s0 , S] [s0 , aSb ] [s0 , S] [s0 , ] a [s , ] [s , a]0 0

[s0 , b]

b

[s0 , ]

La grammaire G2 suivante est quivalente G1 . Elle nest pas de Greibach du fait que son axiome est encore rcursif, nanmoins nous pouvons prendre comme symboles de pile les seules variables S , B : a G : S aSB | [s , SB ] [s , S]2 0 0

B b

[s0 , S] [s0 , B]

b

[s0 , ] [s0 , ]page 15

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

LesMathmatiques.net En traduisant par un cheminement dans lautomate pile la suite de drivations gauche S => aSB => aaSBB => aaBB => aabB => aabb le contenu de la pile sera, successivement :S B S B B B B

S

a

a

b

B

b

(vide)

La transformation en une grammaire quivalente sous forme normale de Greibach donne G3 : S aTB | aB | T aTB | aB B b laquelle est associ un automate un tat, symboles de pile {S, T, B }, pile initialise par S , et six transitions faciles expliciter. Comme laxiome S est non rcursif dans la grammaire G3 , le symbole S ne figure en haut de pile que dans la configuration initiale.

3.4 Grammaire algbrique associe un automate pile.Etant donn un langage reconnu par un automate pile ( transitions gnralises, cf. 1.3.), notre objectif est maintenant de construire une grammaire algbrique produisant ce langage. Les suites de drivations gauche partir de laxiome doivent tre soumises aux mmes contraintes que les cheminements partir de ltat initial dans lautomate pile. Pour la construction dune grammaire rgulire associe un automate (voir [1]), le paramtre dun cheminement est ltat courant, et cest pourquoi les tats peuvent tre pris comme variables de la grammaire. Dans un automate pile, un cheminement dpend de ltat courant, mais aussi du symbole en haut de la pile. Les variables que nous devrons introduire auront donc en paramtres les tats et les symboles de pile. Le haut de pile, prt tre dpil par une transition, figurera ainsi dans la premire variable, prte tre rcrite lors dune drivation gauche. Et le contenu de la pile se retrouvera transcrit dans une chane de variables. En transformant, si ncessaire, lautomate pile donn (cf. 1.3., 1.4. et 2.3), la construction de la grammaire peut se faire partir dun automate A = ( , E, so , , , ) qui est du type obtenu avec la Proposition 2.3.

s0

f

est en fond de pile

Le point important est que la reconnaissance se fait par pile vide, et que toutes les transitions commencent par dpiler un symbole. Nous exploiterons les proprits supplmentaires qui contribueront nous faire une image intuitive de la construction. Il y a un unique tat o la pile peut tre vide : pour accepter une chane, il faut arriver en f . Par ailleurs, la forme rudimentaire des transitions servira uniquement allger lcriture des rgles de grammaire et des drivations. Passons la construction de la grammaire associe A .M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 16

LesMathmatiques.net 1. Les variables de la grammaire. Les variables de la grammaire sont les triplets (i, P, k) o i et k sont des tats, et P est un symbole de pile. La variable S = (so , , f) joue le rle daxiome. Pour une variable (i, P, k) , les paramtres i , P traduisent naturellement ltat courant et le symbole en haut de la pile. Mais quelle peut tre la signification de k ? On peut interprter ltat k comme tant un objectif lointain , un tat o est plante une balise atteindre ultrieurement. A ltat initial (tat so avec dans la pile), lobjectif est datteindre ltat f . Cest ce que dit laxiome (so , , f) . Remarque. Avec cette interprtation, on voit dores et dj que certaines variables seront inutiles dans la grammaire : les variables (f, P, k) parce quen f la pile est vide (le symbole P ne peut pas tre dpil) ; les variables (so , P , k) autres que (so , , f) et les variables (i, P, so) parce que ltat initial so est non rcursif. 2. Description intuitive de la grammaire. Commenons par donner une ide intuitive de la grammaire, en adquation avec celle que nous venons dadopter pour les variables. La rcriture de la variable (i, P, k) par une rgle de grammaire a pour effet : de passer de [i, P] un tat voisin j par une transition qui commence par dpiler P , et/ou de placer une nouvelle balise, cest--dire un objectif intermdiaire, en un tat k o il faudra passer avant de viser k .

Une suite de drivations gauche correspond, dans lautomate pile, un cheminement accompagn de la maintenance dune liste de balises o lon devra passer ultrieurement (cest une pile, en fait, puisque la dernire balise place est la premire tre vise). La balise k vise par (i, P, k ) peut se trouver en un tat voisin, autrement dit tre atteinte par une transition issue de [i, P] ; dans ce cas (o j = k), ce premier objectif tant atteint, il est supprim et on vise la balise suivante de la liste.

Pour traduire le fait que lobjectif dun cheminement est darriver ltat final, rien de plus simple : placer ds le dbut une balise en f . Mais comment sassurer que tous les cheminements issus de [so , ] vont se traduire par des suites de drivations ? En fait, on sest arrang pour que les contraintes imposes nen soient pas ! Le nombre de balises sera constamment gal la hauteur de la pile mais cette hauteur est de toute faon infrieure ou gale au nombre de transitions quil faut encore emprunter pour pouvoir vider la pile. Les balises imposent des passages obligs mais il y aura assez de variables et de rgles de grammaire pour pouvoir placer arbitrairement les nouvelles balises, et donc tous les cheminements possibles pourront tre explors via la grammaire. 3. Les rgles de grammaire. On peut supposer que les transitions de A = ( , E, so , , , ) sont de lun des trois types dcrits dans la premire colonne du tableau suivant, quitte modifier pralablement lautomate pile (cf. Chap.2, 2.3, Proposition). Une famille de rgles de grammaire est associe chacun de ces types, pour les variables introduites en 1.M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 17

LesMathmatiques.net Type de transition Transition ne modifiant pas la pile a [i, P] [j, P] P , a U{} Empilement strict dun symbole (sur pile non vide) [i, P] [j, QP] P, Q , Q Rgles de grammaire correspondantes pour tout k : la rgle (i , P , k) a ( j , P, k)

La balise vise reste la mme.

pour tout k : les rgles (i , P , k) ( j , Q , k)(k , P , k) pour tout kUne nouvelle balise est place en k et est vise avant k .

Dpilement strict [i, P] P [j, ]

la rgle (i , P , j ) La balise qui tait vise en j est atteinte et supprime.

Remarquons que laxiome S = (so , , f) est non rcursif, du fait ltat initial so est non rcursif dans lautomate (dans le tableau ci-dessus, j so ). Et, comme prvu, les variables (f , P , k) savrent inutiles puisquaucune transition ne part de f . On voit aisment (par rcurrence sur n ) quune chane non terminale w qui drive de laxiome par n drivations gauche est de la forme suivante : S ==> w = u (i , Pm , km-1) (km-1 , Pm-1 , km-2) (k2 , P2 , k1) (k1 , , f ) o le prfixe terminal u * est suivi dune chane de variables. La balise dune variable est ltat courant pour la variable suivante. La longueur |w| = |u|+m est majore par le nombre n de rcritures faites. 4. Toute chane terminale produite par la grammaire est reconnue par A . A chaque rgle de grammaire correspond une transition bien dtermine. Par rcurrence sur n , on sassure qu chaque suite de n drivations gauche S ==> w = u (i , Pm , km-1) (km-1 , Pm-1 , km-2) (k2 , P2 , k1) (k1 , , f ) correspond, dans A , un cheminement par n transitions, allant de la configuration initiale (tat so , contenu de pile ) jusqu ltat i avec le contenu de pile Pm Pm-1 P2 et la chane des tiquettes u . La hauteur m de la pile est videmment gale au nombre de balises places km-1 , km-2 , , f . Considrons une chane compltement terminale u produite par la grammaire. Elle ne peut tre obtenue que par une rgle vide applique une chane o ne figure plus quune seule variable : S ==> ==> u (i, , f ) ==> u Cette rgle vide (i, , f ) correspond la transition de dpilement strict de . Le cheminement jusqu i dont lexistence est dj garantie peut tre poursuivi jusqu f avec cette transition qui a pour effet de vider la pile. Autrement dit, toute chane terminale u produite par la grammaire est reconnue par A . 5. Toute chane reconnue par A est produite par la grammaire. Ce point est un peu plus dlicat que le prcdent parce que chaque fois quune transition dempilement strict est emprunte lors dun cheminement, il faut ttonner parmi toutesM.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 18

LesMathmatiques.net les rgles de grammaire qui peuvent tre appliques (paramtre k , dans le tableau). Mais, justement, il y a suffisamment de variables et de rgles pour pouvoir placer arbitrairement ces nouvelles balises. Lemme. Etant donn un cheminement partant de so (pile ) et narrivant pas f , on considre son tat darrive i , avec la chane des tiquettes u et le contenu obtenu dans la pile Pm Pm-1 P2 . La hauteur de la pile est m 1 . Quelle que soit la liste de m-1 tats km-1 km-2 k1 , il existe une suite de drivations gauche S ==> u (i , Pm , km-1) (km-1 , Pm-1 , km-2) (k2 , P2 , k1) (k1 , , f ) Application du lemme. Considrons une chane u accepte, via un cheminement depuis la configuration initiale (so , , u) jusqu la configuration (f, , ) . La dernire transition emprunte vide la pile en dpilant . Il sagit donc dune transition du type ([i , ], , [f , ]) , et la rgle (i , , f) lui est associe. Au cheminement jusqu i correspond, daprs le lemme, une suite de drivations gauche S ==> u (i , , f ) . Il reste appliquer la rgle vide (i , , f) pour obtenir la drivation S ==> u . Preuve du lemme. Par rcurrence sur le nombre de transitions empruntes. i) Cheminement par une seule transition. Allant de so ltat i , cette transition est du type ([so , ] , a , [i , ]) et alors la rgle S a( i , , f ) fournit la drivation voulue, ou bien du type ([so , ] , , [i , Q]) et alors, quel que soit k1 , la rgle S ( i , Q , k1)(k1 , , f ) fournit la drivation voulue. ii) Considrons un cheminement par n transitions, partant de so (pile ) et arrivant ltat i avec le contenu de pile Pm Pm-1 P2 et la chane dtiquettes u . On le prolonge par une (n+1)me transition qui mne de i ltat j , dtiquette a (ventuellement vide). - Si cette dernire transition empile strictement un symbole, disons Pm+1 , il sagit de ([i , Pm], , [j , Pm+1 Pm]) . On se donne m balises km km-1 k1 . Avec les m-1 dernires de ces balises, par hypothse de rcurrence, on a une suite de drivations gauche pour le cheminement jusqu i : S ==> u (i , Pm , km-1) (km-1 , Pm-1 , km-2) (k2 , P2 , k1) (k1 , , f ) La dernire transition assure lexistence de la rgle (i , Pm , km-1) (j , Pm+1 , km) (km , Pm , km-1) quil reste encore appliquer pour obtenir la drivation cherche S ==> u (j , Pm+1 , km) (km , Pm , km-1) (k2 , P2 , k1) (k1 , , f ) - Si la transition de i j laisse la pile inchange, il sagit de ([i , Pm], a , [j , Pm]) . Des balises km-1 km-2 k1 tant donnes, on a une suite de drivations gauche S ==> u (i , Pm , km-1) (km-1 , Pm-1 , km-2) (k2 , P2 , k1) (k1 , , f ) La dernire transition assure lexistence de la rgle (i , Pm , km-1) a (j , Pm , km-1) quil reste appliquer pour obtenir la suite de drivations cherche S ==> ua (j , Pm , km-1) (km-1 , Pm-1 , km-2) (k2 , P2 , k1) (k1 , , f ) - Si la transition de i j dpile strictement le symbole Pm , il sagit de la transition ([i , Pm], , [j , ]) . On se donne m-2 balises km-2 km-3 k1 . Avec ces balises plus une balise supplmentaire en j , on a une suite de drivations gauche S ==> u (i , Pm , j) (j , Pm-1 , km-2) (k2 , P2 , k1) (k1 , , f ) La dernire transition assure lexistence de la rgle (i , Pm , j) , quil reste appliquer pour obtenir la drivation cherche (et finir la preuve par rcurrence).M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 19

LesMathmatiques.net

Chap. 4 Quelques oprations sur les langages algbriquesIl arrive frquemment quun langage tudier puisse sexprimer laide doprations simples appliques des langages algbriques connus.

4.1 Oprations rgulires sur les langages algbriques.Proposition 4.1. Sur un alphabet donn, les langages algbriques sont ferms pour les oprations suivantes sur les langages : - runion - concatnation - toile de Kleene Preuve. Considrons deux grammaires algbriques G1 = (, V1, S1, P1 ) , G2 = (, V2, S2, P2 ) et les langages L1 , L2 quelles engendrent. i) On obtient une grammaire algbrique qui engendre la runion L1 U L2 en runissant tous les ingrdients et en ajoutant encore une variable supplmentaire S0 (qui sera laxiome) et qui se rcrit S0 S1 | S2 . Il faut juste veiller distinguer les variables des deux grammaires (sinon, renommer certaines variables) : la runion V1 U V2 doit tre une runion disjointe. Un automate pile reconnaissant L1 U L2 sobtient en procdant de manire analogue partir dautomates pile respectifs. Considrons quils sont pile initialement vide, reconnaissance par tat acceptant et pile vide. Il suffit alors de les runir de faon disjointe, puis dajouter un nouvel tat qui servira dtat initial. Noter quune (unique) pile suffit.

S1 ( ; ) S0 ( ; ) S2

A1

A2

ii) Une grammaire qui engendre le langage concatn L1.L2 se construit tout aussi facilement : runir les deux grammaires, puis ajouter une nouvelle variable-axiome S0 avec la rgle de rcriture S0 S1S2 . Un automate (une seule) pile sobtient en branchant les tats acceptants (dornavant banaliss) de A1 sur ltat initial (banalis) de A2 . iii) Pour crire une grammaire algbrique produisant le langage L1* , il faut tre attentif la question de la chane vide qui, si elle nest pas dans L1 , doit nanmoins tre dans L1* . Lventuelle rcursivit de laxiome S1 doit aussi tre prise en compte. Une rponse gnrale consiste ajouter un nouvel axiome S et les rgles S0 S1S0 | . Un automate pile sobtient selon le mme principeM.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 20

LesMathmatiques.net ( ; ) S0

S1

A1

( ; )

Remarque. Si laxiome de la grammaire donne est non rcursif, on pourrait boucler directement sur lui. Mais seulement dans ce cas, comme le montre lexemple suivant. Notre langage L = {an bn : n 0 } est engendr par la grammaire G : S aSb | , dans laquelle laxiome est rcursif. En bouclant directement sur S , on obtient la grammaire G : S SS | aSb | . Il est facile de voir que le langage engendr par cette grammaire G nest pas L* . En fait, L(G) est le langage des parenthses , si lon considre que le symbole a (resp. b ) reprsente la parenthse ouvrante (resp. fermante). Par exemple, les parenthses dans lexpression (((x+x)+x)+(x+x)) correspondent au mot aaabbabb , qui est dans L(G) mais non dans L* .

4.2 Intersections et complments de langages.Une instant de rflexion suffit pour sapercevoir que construire une grammaire produisant lintersection de deux langages algbriques savre tre un dfi qui na rien de commun avec ce que nous avons fait pour une runion. En considrant des automates pile, le problme nest pas plus simple : pour tester une chane, on en est rduit devoir cheminer en parallle dans les deux automates pile et donc utiliser les deux piles la fois. On travaille, en somme, avec un automate deux piles . Proposition. Sur un alphabet donn, i) lintersection dun langage algbrique et dun langage rgulier est un langage algbrique. ii) les langages algbriques ne sont pas ferms pour lopration dintersection : on peut trouver deux langages algbriques dont lintersection nest pas un langage algbrique. iii) les langages algbriques ne sont pas ferms pour la complmentation : on peut trouver un langages algbrique dont le complmentaire nest pas un langage algbrique. Preuve. i) Un langage rgulier est reconnu par un automate, que lon peut mme supposer dterministe et complet (cf. [1]). Un cheminement dans un automate pile saccompagne dun cheminement parallle dans cet automate : une seule pile est ainsi utilise. Un tel cheminement simultan dans deux dispositifs peut se formaliser de la manire suivante. Soit A1 = ( , E1 , s1 , F1, , 1 ) un automate pile, et A2 = ( , E2 , s2 , F2 , 2 ) un automate. Les langages reconnus sont nots respectivement L1 et L2 (et L2 est rgulier). Cheminer en mme temps dans A1 et A2 , cest cheminer dans un automate pile dont lensemble des tats est E1 x E2 . Ltat initial est bien sr (s1 , s2 ) . Les symboles de pile et le mode de reconnaissance sont ceux de A1 . On associe les transitions respectives ayant mme tiquette : pour a , on admet la transition ([(i1, i2), P], a, [(j1, j2), M]) siM.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 21

LesMathmatiques.net et seulement si ([i1 , P], a , [j1 , M]) est dans 1 et ( i2 , a , j2 ) dans 2 . Avec une transition dtiquette vide dans A1 , il faut un tat stationnaire dans A2 : la transition ([(i1, i2), P], , [(j1, i2), M]) est admise si et seulement si ([i1 , P], , [j1 , M]) est dans 1 . On a tout fait pour que le langage reconnu par cet automate pile soit L1 L2 . Noter quil nest pas ncessaire que lautomate A2 soit dterministe ou complet. ii) Sur = {a, b, c}, voici un exemple de deux langages algbriques (ce sont des concatnations de langages algbriques connus) L1 ={an bn : n 0 }.{c}* et L2 = {a}*.{bn cn : n 0 } dont lintersection {an bn cn : n 0 } nest pas un langage algbrique, ce qui sera prouv au chapitre suivant, avec le Lemme de lEtoile. iii) On a vu que les langages algbriques sont ferms pour la runion. Sils taient ferms pour la complmentation, ils devraient ltre aussi pour lintersection, puisque pour tous langages L1 et L2 on a : (loi de de Morgan) L1 L2 = L1 U L2 Pour tre plus concret, donnons un exemple explicite. Nous avons dj annonc en ii) que le langage L = {an bn cn : n 0 } nest pas algbrique. Mais son complmentaire {ai bj ck : i, j, k 0 , i j ou j k} est algbrique, puisquil est la runion des quatre langages algbriques suivants (chacun est algbrique comme concatnation de langages algbriques connus) : Lab = aa*{an bn : n 0 }c* Lbc = a*bb*{bn cn : n 0 } Lba = {an bn : n 0 }bb*c* Lcb = a*{bn cn : n 0 }cc*

(on a allg lcriture en notant a* au lieu de {a}* etc.. ).

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 22

LesMathmatiques.net

Chap. 5

Le Lemme de lEtoile pour les langages algbriques

Le problme : un langage L tant donn, comment savoir sil peut tre engendr par une grammaire algbrique, et donc sil est reconnu par un automate pile ? Le lemme de lEtoile (appel aussi lemme du gonflement ou lemme de pompage ) donne une condition que les chanes de L doivent ncessairement satisfaire sil y a une telle grammaire. Cette condition ncessaire sera exploite pour prouver que certains langages ne peuvent pas tre engendrs par une grammaire algbrique. Dans [1] , un lemme de lEtoile pour les langages rguliers a t tabli partir de la forme particulire quont les arbres de drivation dans le cas dune grammaire rgulire. Dans le cadre plus gnral des grammaires algbriques, lide est exactement la mme : si un arbre de drivation est plus haut que le nombre de variables, il y a une variable rpte sur un chemin issu de la racine S de larbre, et la portion de branche situe entre ces deux occurrences dune mme variable peut tre duplique autant de fois que lon veut. Seule la mise en forme du lemme est un peu plus technique, du fait que les arbres de drivation nont plus de forme particulire.

5.1 Le Lemme de lEtoile (cas dune grammaire algbrique).Soit G = (, V, S, P ) une grammaire algbrique, o V dsigne lensemble des variables, S V est laxiome, et P est lensemble des rgles de production. Les rgles sont de la forme A M o A V et M ( U V)*. Dans ce qui suit, nous aurons utiliser deux constantes lies la grammaire : le nombre |V| de variables, et la longueur maximale des rgles de production m = max {|M| : A M P }. On associe toute suite de drivations S ==> w * un arbre de drivation. Appelons hauteur de larbre le nombre maximal dartes sur les chemins descendant partir de la racine de larbre. Si h est la hauteur de larbre, il y a au plus mh extrmits de branches. Les symboles qui figurent aux extrmits des branches, lus de gauche droite, forment la chane w . Sa longueur |w| est donc certainement infrieure ou gale mh . Si |w| est strictement suprieure la constante m|V| , on a donc h > |V| . Mais si h > |V| , larbre de drivation contient un chemin avec deux nuds tiquets dune mme variable. Et ceci quel que soit larbre de drivation pouvant tre associ la chane w . Sur un chemin de hauteur maximale, considrons deux nuds tiquets par une mme variable A (cf. fig. suivante). On peut en trouver dans les |V|+1 derniers segments.. La chane w scrit alors comme la concatnation w = uxzyv de cinq chanes que lon peut dcrire de la manire suivante : avant la premire occurrence de A , les extrmits des branches qui partent vers la gauche du chemin forment la chane u ; partir du premier nud A et jusqu la deuxime occurrence de A , les branches gauche du chemin forment la chane x ; vers le bas partir du deuxime nud A , on obtient la chane z ; droite du chemin, les chanes y et v sont les analogues de x et u respectivement Ces chanes correspondent une suite de drivations, laquelle est associe le mme arbre de drivation (mais ce ne sont pas des drivations gauche) : S ==> uAv ==> uxAyv ==> uxzyv = wM.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 23

LesMathmatiques.net Nous pouvons greffer des clones du tronon darbre qui est compris entre les deux nuds tiquets par la mme variable ; autrement dit, nous pouvons rpter la squence de drivations A ==> xAy , ou la supprimer, dailleurs. Ceci produit les chanes S ==> uAv ==> uzv et S ==> uAv ==> uxAyv ==> uxxAyyv ==> uxxzyyv S ==> uAv ==> uxAyv ==> ==> uxnAynv ==> uxnzynv

En conclusion, toutes les chanes de la forme uxnzynv avec n 0 sont produites par la grammaire. S u=ab a a x=aba a a A b A

a v=ab a b y=ba b

b

b z=ab

Il nous reste toutefois nous assurer que nous pouvons bien obtenir des chanes distinctes de la chane initiale w . Une grammaire algbrique G quelconque peut contenir des rgles vides, et de ce fait les deux chanes x et y peuvent tre vides. Mais dans ce cas, le tronon darbre compris entre les deux occurrences de A peut tre supprim, le chemin est raccourci, sans que la chane produite soit modifie ; on a obtenu une nouvelle suite de drivations S ==> w , associe un arbre qui a strictement moins de nuds, mais sa hauteur doit toujours tre suprieure |V| puisque |w| > m|V| . Cette suppression de tronons vides (drivations de la forme A ==> A ) peut tre rpte tant que possible. On a prouv lexistence dun chemin porteur de nuds tiquets par une mme variable et pour lesquels xy est non vide. De plus, on obtient une dcomposition w = uxzyv qui est telle que |xzy| m|V|+1 en choisissant les deux nuds dans la partie basse du chemin (parmi ses |V|+1 derniers nuds tiquets dune variable). Thorme (Lemme de lEtoile). Si un langage L peut tre engendr par une grammaire algbrique, alors il existe une constante K telle que toute chane w L dont la longueur est suprieure ou gale K scrit sous la forme w = uxzyv , o les chanes x et y ne sont pas toutes deux vides la longueur de xzy est majore par K uxnzynv L pour tout n 0 Preuve. Si L est infini, prendre K = m|V|+1 , o m est la longueur maximale des rgles de production et |V| le nombre de variables dune grammaire engendrant L . On a m > 1 si L est infini, donc m|V|+1 > m|V| . Le raisonnement prcdent permet de finir la preuve. Si L est fini (cas o le thorme est sans intrt) : prendre K = max{ |w| : w L}+ 1 .M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 24

LesMathmatiques.net Note. Pour assurer xy non vide, une autre stratgie serait de commencer par transformer la grammaire, afin de travailler avec une grammaire quivalente sans rgles vides (autres que pour laxiome) et o laxiome est non rcursif. Avec une grammaire sous forme normale de Chomsky par exemple (cf. [1]), m = 2 . Avec une grammaire sous forme normale de Greibach, les rgles terminales sont de longueur 1 , on obtient |xzy| m|V| . Pour finir, voici un petit exemple pathologique qui montre que dans un arbre de drivation, il ny a pas ncessairement deux nuds exploitables ( xy non vide) parmi |V|+1 nuds conscutifs. Une grammaire G tant donne, il suffit de la modifier en lui ajoutant les rgles AA (pour tout AV). Des tronons vides de nimporte quelle hauteur peuvent tre insrs entre toutes les artes conscutives, dans un arbre de drivation. Avec G : S Sa | S | la chane an peut sobtenir ainsi (pour tout k ) : S =>=> S ==> Sa =>=> Sa ==> Sa2 => Sa2 ==> Sa3 => => San => ank fois SS puis SSa

Voyons maintenant un exemple dutilisation du critre lemme de lEtoile , pour prouver que certains langages ne sont pas engendrs par une grammaire algbrique.

5.2 Exemples dapplication du Lemme de lEtoile.Lexemple le plus simple dun langage algbrique non rgulier est {an bn : n 0 }. En observant, dans le lemme de lEtoile pour les langages algbriques, ces deux segments x et y dupliqus de part et dautre dune partie mdiane, on peut imaginer que pour obtenir un exemple de langage non algbrique, il suffirait de chanes tripartites dans lesquelles les trois parties dpendent les unes des autres. Voici un exemple classique de ce type, sur lalphabet {a, b, c }. Proposition. Le langage L = { an bn cn : n 0 } nest pas algbrique. En corollaire, il existe des langages qui ne sont pas reconnaissables par un automate pile. Preuve. On prouve que le lemme de lEtoile nest pas vrifi. Quel que soit lentier K , nous exhibons une chane w L , de longueur suprieure K , qui a la proprit que pour nimporte quel dcoupage w = uxzyv (o xy est non vide), la chane uxxzyyv ne soit plus dans le langage. Soit w = aK bK cK . On crit w = uxzyv avec xy non vide. Tout dabord, remarquons quen dupliquant dans w une sous-chane contenant au moins deux symboles diffrents, la chane obtenue nest certainement pas dans L puisquelle nest mme pas de la forme ai bj ck . Il reste voir le cas o chacune des chanes x et y est crite avec un seul symbole rpt (ventuellement zro fois). Mais dans ce cas, lun (au moins) des trois symboles ne figure ni dans x , ni dans y . En dupliquant x et y , ce symbole figurera K fois, donc strictement moins de fois que lun des autres, dans la chane uxxzyyv . On est sorti de L . a..ab....b b....b b....bc cc c..c u x z y v(ici, le symbole a restera en K exemplaires)

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 25

LesMathmatiques.net Mais nallons pas imaginer quil est ncessaire davoir trois symboles distincts dans lalphabet ! Les exemples suivants sont deux symboles : Exemples 2. Le langage L1 = { an bn an : n 0 } nest pas algbrique. L2 = { am bn am : m n 0 } nest pas algbrique. L3 = { u.u : u {a, b}* } nest pas algbrique. Preuves. Quel que soit lentier K , nous avons une chane w , de longueur suprieure K , qui a la proprit que la chane uxxzyyv ne soit plus dans le langage considr, pour nimporte quel dcoupage w = uxzyv vrifiant |xzy| K et xy . La chane w = aK bK aK convient, aussi bien pour L1 que pour L2 dailleurs. Ecrivons K K K a b a = uxzyv , avec |xzy| K et xy non vide. Il faut examiner toutes les dispositions possibles pour la chane xzy . La facteur x (resp. y ) ne peut contenir deux symboles diffrents. En dupliquant x et y , on obtient la chane uxxzyyv qui nest dans L1 dans aucun cas de figure. Dans le cas de L2 , la condition |xzy| K doit tre exploite (pour interdire x = ai dans le prfixe avec y = ai dans le suffixe) ; alors, uxxzyyv L2 . Pour L3 , le raisonnement est analogue partir de w = aK bK aK bK . Noter la diffrence de nature entre le langage L3 des chanes doubles et le langage des palindromes de longueur paire { u.ut : u {a, b}* } qui, lui, est algbrique (il est engendr par une grammaire algbrique vidente S aSa | bSb | ) .

Bien, mais mme avec un seul symbole, on peut trouver des langages non algbriques, comme nous allons le voir. Exemple 3. Le langage L = { a2 : n 0 } nest pas algbrique. Preuve. Quel que soit lentier K , considrons la chane a2 , dont la longueur 2K est K videmment suprieure K . On crit a2 = uxzyv avec xy non vide et |xzy| K . La chane uxxzyyv nest pas dans L , puisque 2K < |uxxzyyv| = 2K + |xy| 2K + K < 2K+1 .K n

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 26

LesMathmatiques.net

Chap. 6 Automates pile dterministes6.1 Dfinition et exemple.Dfinition. Un automate pile ( transitions gnralises) est dit dterministe si, quelle que soit la configuration c , il y a au plus une configuration qui drive (en une tape) de c. Un langage est dterministe sil peut tre reconnu par un automate pile dterministe. Remarque. A proprement parler, la dfinition prcdente ne signifie pas quil y a au plus une transition qui puisse sappliquer la configuration donne. Donnons un contreexemple (un peu pathologique). En appliquant une configuration c donne les deux transitions formellement distinctes ([i, ] , a , [j, M] ) et ([i,P] , a , [j, MP] ), on obtient au plus une configuration. Mais en prsence de deux telles transitions, on peut videmment supprimer ([i,P] , a , [j, MP]) , la premire pouvant sappliquer sans imposer de condition sur le contenu de la pile (cf. Chap. 1, 1.4. , Remarque 2). Dornavant, nous supposons que lautomate pile est nettoy de ces transitions parasites. Le critre suivant permet alors de dtecter le dterminisme directement sur les transitions. Un automate pile ( transitions gnralises) A = ( , E, so , F, , ) est dterministe si, quels que soient ltat i E , le symbole de pile P et le symbole a , il y a au plus une transition de la forme ([i,P] , a , [j, M] ) avec P {P , }, a {a , }, j E , et M * . Sil y a une transition ([i, ] , , [j, M]), elle est lunique transition issue de ltat i . Sinon, sil y a une transition ([i, P] , , [j, M]), cest lunique transition issue de i qui dpile P ; sil y a une transition ([i, ] , a , [j, M]), cest lunique transition consommant le symbole a ; et sil y a une transition qui dpile P et consomme a , elle est la seule dans son genre . Dans un automate pile dterministe, il y a donc unicit du cheminement : partir dune configuration initiale donne avec une chane w tester, la suite des transitions pouvant tre successivement empruntes est dtermine de faon unique. La progression peut videmment tre bloque avant la fin de la lecture de w . Mais cause du dterminisme justement, il est possible de complter lautomate pile dterministe : en ajoutant un nouvel tat puits perdu et les transitions ncessaires pour lever les blocages, on obtient un automate pile dterministe complet, dans lequel la lecture de la chane w peut tre poursuivie jusquau bout. Comme tous les automates peuvent tre effectivement transforms en automates dterministes complets (cf. [1]), il est naturel de se demander sil est possible de trouver un procd analogue pour les automates pile. La rponse est non : il nexiste pas dalgorithme de dterminisation . Pire encore : il y a des langages algbriques qui ne sont pas dterministes. Exemple. On peut prouver que le langage des palindromes sur = {a, b} nest pas dterministe : il nexiste aucun automate pile dterministe qui le reconnaisse. Lide : il est impossible de vrifier la symtrie de la chane teste en lisant ses symboles un un de gauche droite. Le centre de symtrie de la chane ne peut pas tre trouvpage 27

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

LesMathmatiques.net autrement quen essayant systmatiquement tous les cas possibles. Nous reviendrons plus en dtail sur cet exemple dans 6.3.

6.2 Discussion des modes de reconnaissance.On a vu que pour les langages reconnaissables par un automate pile, le choix du mode de reconnaissance est indiffrent puisque ceux-ci sont quivalents via des transformations des automates pile (cf. Chap. 2). Pour les langages dterministes, il en ira autrement. Mais commenons par voir ce qui peut tre sauv, lorsque ces transformations sont appliques dans le cadre dterministe. i) La transformation 2.2 1. ( partir dun automate pile qui reconnat par tat acceptant), applique un automate pile A dterministe, donne un rsultat qui nest pas dterministe en gnral. Les transitions ajoutes pour vider la pile rendent le nouvel automate pile non dterministe sil y a dans A une transition issue dun tat acceptant. A priori, lexigence dune pile vide dans les configurations acceptantes est donc une contrainte supplmentaire, dans le cas dterministe. ii) Voyons les transformations 2.2 2. et 2.2 3. partir dun A dterministe qui reconnat par tat acceptant et pile vide. Sil y a, dans A , une transition de la forme ([i, ], a, [j, M]) issue dun tat acceptant i, on obtient un A non dterministe (que a soit vide ou non). Bien entendu, dans A , cette transition ([i, ], a, [j, M]) quivaut la famille de transitions ([i, P] , a, [j, MP]) , P U{}. En revanche, si toutes les transitions issues des tats acceptants de A commencent par dpiler un symbole de pile de A , alors le rsultat est dterministe. Comme les transformations locales de 1.3 et 1.4 conservent le dterminisme, on peut mme arriver un automate pile dterministe dont la forme est celle dcrite dans la Proposition de 2.3 . Dfinition. Soit L un langage algbrique. Le langage minimal Min(L) est constitu de toutes les chanes w L pour lesquelles aucun prfixe propre nappartient L : Min(L) = { w L : si w = uv avec u et v non vides, alors u L } Attention, le langage Min(L) na aucune raison dtre algbrique, a priori. Proposition 1. Soit L un langage que reconnat, par pile vide, un automate pile dterministe dont toutes les transitions sont de la forme ([i, P] , a , [j, M]) avec le symbole P non vide (ltiquette a ou la chane M peuvent tre vides ou non). Alors on a L = Min(L) . Preuve. Dans un tel automate pile : i) cause du dterminisme, si w = uv L avec u Min(L), le cheminement menant lacceptation de w doit tre un prolongement de celui qui est associ u ii) comme la pile est vide au moment o u est accepte, aucune transition ne peut plus sappliquer ( cause de la forme des transitions). Si la reconnaissance se fait par pile vide et tat acceptant, largument est le mme. Dfinition. Un langage L est dit prfixe si L = Min(L) . Remarque. La grammaire construite (cf. 3.4) partir dun automate pile satisfaisant aux hypothses de la Proposition prcdente est non ambigu. M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES page 28

LesMathmatiques.net Proposition 2 . Soit L un langage que reconnat, par tats acceptants, un automate pile dterministe. Alors Min(L) est algbrique et dterministe reconnu par tats acceptants. Preuve. Soit A dterministe, reconnaissant L par tats acceptants. A cause du dterminisme, si w = uv L avec u Min(L), le cheminement menant lacceptation de w est un prolongement de celui associ u . En supprimant toutes les transitions issues des tats acceptants de A , on obtient un automate pile avec lequel seules les chanes de Min(L) sont acceptes. Mentionnons au moins les deux proprits de fermeture suivantes pour les langages dterministes reconnus par tats acceptants. Proposition 3. i) Lintersection dun langage dterministe et dun langage rgulier est un langage dterministe. ii) Le complmentaire dun langage dterministe est dterministe. Preuve. i) Tout langage rgulier est reconnu par un automate dterministe (et complet). La construction faite en 4.2 Proposition i), applique deux dispositifs dterministes, donne un automate pile dterministe. ii) Un automate pile dterministe pouvant tre complt, il reste ensuite inverser les tats acceptants et non-acceptants pour reconnatre le langage complmentaire. A cette occasion, on rappelle que le complmentaire dun langage algbrique nest pas, en gnral, algbrique (cf. 4.2 )

6.3 Des exemples parmi les palindromes.Soit L le langage de tous les palindromes, sur {a, b}. Cest un langage algbrique (on a dj vu une grammaire adquate). Mais le langage Min(L) est dramatiquement rduit, parce que les prfixes ( un seul symbole) a et b sont dj des palindromes : Min(L) = {a , b , }. On en dduit que L nest pas dterministe par pile vide , daprs la Proposition 1 . Mais L est-il dterministe par tats acceptants ? Supposons que cest le cas. Lintersection de L avec le langage rgulier a*ba*(b U{})a*ba* est un langage L algbrique (cf. 4.2), et il est aussi dterministe daprs lhypothse (intersection dun langage dterministe et dun langage rgulier). Daprs la Proposition 2 prcdente, Min(L) doit donc tre un langage algbrique (et, accessoirement, dterministe). Les lments de L sont les palindromes qui contiennent deux ou trois b . Ceux qui contiennent (exactement) deux b sont tous minimaux (leurs prfixes propres sont asymtriques, ou ne sont pas dans L ). Ceux qui contiennent trois b sont de la forme am ban banbam ; ils sont minimaux lorsque m > n 0 . Par exemple, abaabaaba nest pas minimal (prfixe propre : abaaba ) alors que aabababaa est minimal. Rsumons : Min(L) = { am ban bam : m 0 , n 0 } U { am ban banbam : m > n 0 }. Or, ce langage nest pas algbrique, daprs le Lemme de lEtoile : quel que soit K , en crivant aK+1 baK baKbaK+1 = uxzyv avec |xzy| K et xy , la chane uxxzyyv est asymtrique, ou avec trop de a en partie centrale : aK+1 baK+|x| baK+|y| baK+1 Min(L) . Nous avons abouti une contradiction.M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 29

LesMathmatiques.net La proposition suivante est ainsi prouve. Incidemment, nous avons aussi obtenu un exemple de langage algbrique dont le langage minimal nest pas algbrique. Proposition. Le langage algbrique des palindromes sur {a, b} nest pas dterministe.

Remarque. Dans la littrature sur le sujet, on trouve gnralement une preuve de cette proposition qui utilise un autre sous-langage intressant : celui des palindromes qui sont de la forme (ab)*(ba)*(ab)*(ba)* . Les lments minimaux en sont ceux qui ont la forme (ab)i (ba)j (ab)j (ba)i avec i > j . On peut prouver que les langages algbriques sont ferms par automorphisme inverse (une notion que nous navons pas aborde dans ce cours). Dans le cas considr, lide est quon a remplac a par ab et b par ba , et quen revenant en arrire, on obtient le langage { ai bj aj bi : i > j }. Si L tait dterministe, ce dernier langage devrait tre algbrique. Or ce nest pas le cas (lemme de lEtoile).

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 30

LesMathmatiques.net

REFERENCESCours prcdent, sur le site Internet LesMathmatiques.net [1] M.P. Muller, Langages - Grammaires Automates Rfrences externes J. Berstel, Transductions and context-free languages. Teubner, 1979 J. Hopcroft ; J. Ullman, Introduction to Automata Theory, Languages and Computation. Addison Wesley, 1979 M. Sipser, Introduction to the Theory of Computation. PWS Publishing Company, 1997. T. Sudkamp, Languages and Machines. Addison Wesley. P. Wolper. Introduction la calculabilit. Dunod, Paris, 2001. Rappel Rfrences des publications originelles des rsultats fondamentaux mentionns.Introduction par S. Kleene, en 1956, de la notion de langage rgulier :

(pdf , tlcharger)

Kleene, S. , Representation of Events in Nerve Nets and Finite Automata in Automata Studies (1956) eds. C. Shannon and J. McCarthy.Les travaux fondamentaux de N. Chomsky sur la classification des langages et grammaires :

1. Chomsky, N., Three models for the description of language, IRE Transactions on Information Theory, 2 (1956), pages 113-124 2. Chomsky, N., On certain formal properties of grammars, Information and Control, 1 (1959), pages 91-112L'article de Sheila Greibach introduisant, en 1965, la forme normale de Greibach, a t l'une de ses premires publications :

Greibach, S., A New Normal-Form Theorem for Context-Free Phrase Structure Grammars, Journal of the ACM (JACM), Volume 12 Issue 1 (1965)

M.P. Muller - AUTOMATES A PILE ET GRAMMAIRES ALGEBRIQUES

page 31