2 Langages et grammaires formels Les notions développées dans ce chaptre ont été introduites dans [1] initialement pour décrire des langages naturels et développées ultérieurement dans le cadre des langages formels ; nous suivons essentiellement [?]. Des références plus facilement accessibles sont [5, 6]. 2.1 Motivation Si A est un ensemble fini, certains éléments de sa clôture monoïdale A peuvent avoir une signification particulière. Par exemple si A = {a,..., z, }, où est le caractère «blanc», une classe bien particulière de A contient toutes les phrases possibles et imaginables du français, une autre toutes les phrases de l anglais, etc. Ainsi, nous appellerons généralement langage toute partie de A. Deux questions vont nous pré-occuper dans ce cours. Comment engendrer le langage à partir d un nombre restreint de règles? Il n est pas nécessaire d avoir appris toutes les phrases possibles et imaginables du français ; avec les connaissances acquises pendant la période de son apprentissage, nous pouvons construire n importe quelle phrase grammaticalement correcte en français. Nous disposons donc d un système générateur, appelé grammaire, qui nous permet d engendrer le langage. Comment reconnaître qu une phrase donnée appartient au langage? Si vous
2.2 Grammaires formelles 22 voyez la phrase Zij ω( ) een lineaire afbeelding van een reële Hilbertruimte K naar de ruimte van stochasten op een kansruimte met eindige momenten, votre système de reconnaissance linguistique du français la rejette immédiatement ; sans l ombre d un doute elle n est pas du français. Nous appelons automate (ou machine) un dispositif informatique et un algorithme faisant automatiquement cette reconnaissance. Si on présente une phrase en entrée de l automate, après un nombre fini d étapes intermédiaires, il s arête en donnant la réponse «oui» ou «non» selon que la phrase appartient ou non au langage. Dans ce cours, nous ne nous intéresserons pas aux langages naturels (français, anglais, musique, etc.) mais aux langages formels (programmes informatiques, expressions mathématiques, etc.) qui ont une structure syntaxique plus stricte et peuvent de ce fait être étudiés plus facilement. Ce chapitre traitera du problème de génération par une grammaire. Le chapitre suivant de celui de reconnaissance par un automate. Nous verrons qu il existe une hiérarchie de grammaires, l hiérarchie de Chomsky [1] ; pour chaque type de grammaire dans cette hiérarchie correspondra un type d automate permettant de reconnaître les phrases produites par la grammaire. 2.2 Grammaires formelles 2.2.1 Aspects combinatoires de A Nous avons vu dans le chapitre précédent la notion de clôture monoïdale d un alphabet A comme étant l ensemble A = sup n N A n, muni de l opération binaire interne de concaténation ; le mot ε joue le rôle d unité pour la concaténation et A acquiert ainsi la structure d un monoïde ; c est le plus petit monoïde contenant A. Si nous considérons A + = n N+ A n, muni encore de la concaténation, l ensemble A + ne dispose plus d unité ; il est alors simplement un semigroupe. A + est le plus petit semi-groupe contenant A. Si S est un semigroupe (reps. monoïde) et A S alors A est contenu dans au moins un sous-semigroupe (sous-monoïde) de S (en l occurrence dans S luimême). Si S = A + (reps. S = A ), alors A est dit ensemble générateur de S. Définition 2.2.1. Soit A un ensemble générateur du semi-groupe (reps. monoïde) S. Alors S est dit libre sur A si chaque élément de S a une représentation unique comme produit d éléments de A. Remarque 2.2.2. L ensemble 1 A est libre sur A. Ainsi, si α,β A, avec α = a 1 a m, a i A pour i = 1,...,m et β = b 1 b n, b j A pour j = 1,...,n, nous 1. Il est souligné que l ensemble A ne contient que de l information de bas niveau (combi-
2.2 Grammaires formelles 23 avons [α = β] [(m = n) ( i {1,...,n}, a i = b i )]. Théorème 2.2.3. Soient α,β,γ,δ A. Si αβ = γδ, alors 1. si α γ, alors!ζ A tel que α = γζ et δ = ζβ ; 2. si α = γ, alors α = γ et δ = β ; 3. si α γ, alors!ζ A tel que γ = αζ et β = ζδ ; Démonstration. Exercice! Définition 2.2.4. Soit α,β A. On écrit α β s il existe γ A tel que αγ = β. On dit alors que α est un préfixe de β ou que γ est un suffixe de β. 2.2.2 Grammaires Définition 2.2.5. Soient A un alphabet fini non-vide et A t,a n des parties complémentaires dans A, appelées respectivement symboles terminaux et non-terminaux de A = A t A n, une partie finie non-vide Π A A n A A, appelée productions, S est un élément particulier de A n appelé axiome. Le quadruplet Γ = (A t,a n,π,s) est alors appelée grammaire. Définition 2.2.6. Soit Γ = (A t,a n,π,s) une grammaire avec A = A t A n. La grammaire induit sur A une relation dite de dérivation directe, notée, définie par (α β) ( γ 1,γ 2,η,ζ A : α = γ 1 ζγ 2,β = γ 1 ηγ 2,(ζ,η) Π). On note + la clôture transitive de et par la relation d accessibilité qui en découle. Remarque 2.2.7. Les productions induisent une relation sur les couples de mots (α, β) dont α contient nécessairement au moins un symbole non terminal. Le terme «production» sous-entend que si le mot α est un sous-mot d un mot autorisé ζ = ζ 1 αζ 2 et (α,β) une production, alors ζ 1 βζ 2 sera aussi un mot autorisé par la grammaire. Par exemple, supposons que A n = {a,b,c}, A t = {x, y, z} et que (zbx, zccxx) Π. Si le mot ζ = x y azbx y z est autorisé, alors le mot ζ = x y azccxx y z est aussi autorisé. L ensemble des trajectoires G S du digraphe G = G( ) associé à la relation émanant de l axiome S contiendra tous les mots qui peuvent être produits par la grammaire à partir de l axiome. natoire). Des informations géométriques ou analytiques peuvent être adjointes à A pour obtenir des objets plus compliqués tels que des groupes ou des systèmes de fonctions itérées.
2.3 Hiérarchie de Chomsky 24 Définition 2.2.8. Soit Γ(A t,a n,π,s) une grammaire avec A = A t A n. On appelle langage engendré par Γ l ensemble L(Γ) = {α A t : S α}. Exemple 2.2.9. Soient A t = {0,1}, A n = {S, A} et Π = {(S,0A1),(0A,00A),(A1, A11),(A, A A),(A,ε)}. Une suite possible de dérivations est la suivante S 0A1 00A1 00A A1 00A A11 00A11 000A11 00011. Il est facile de montrer que L(Γ) = {0 m 1 n,m,n 1}. Notation 2.2.10. Habituellement, nous notons par des lettres minuscules, des chiffres ou des symboles mathématiques les éléments de l alphabet A t et par des lettres majuscules les éléments de A n. 2.3 Hiérarchie de Chomsky Il existe une classification de grammaires selon leur puissance d expression telle que définie par leurs productions. Cette hiérarchie est donnée dans la table 2.1 ci-dessous. N o Type Productions 0 non-contrainte a β,α A A n A,β A 1 contextuelle αaγ αβγ, A A n,α,β,γ A 2 non-contextuelle ou algébrique A α, A A n,α A 3 régulière ou linéaire A αbβ, A,B A n,α,β A t TABLE 2.1 L hiérarchie des grammaires selon Chomsky. Exemple 2.3.1. Soit la grammaire Γ dont les productions sont S asa bsb ε. Un exemple de dérivation est S asa a 2 Sa 2 a 2 bsba 2 a 2 basaba 2... Il est facile de montrer que L(Γ) = {αα,α {a,b} }, où α est le mot renversé de α.
2.4 Exercices 25 N o Langage Automate 0 énumérable par récurrence machine de Turing (TM) 1 contextuel machine de Turing à entrée bornée (LBA) 2 non-contextuel automate à pile (PDA) 3 régulier automate (déterministe ou nondéterministe) fini (FA) TABLE 2.2 Les langages produits par les grammaires et les automates qui les reconnaissent. La classification de Chomsky est très utile car elle induit une correspondance présentée dans la table 2.2 entre les grammaires, les langages qui en découlent et les automates qui réconnaissent ces langages. Les chapitres suivants seront consacrés à l étude de certaines classes d automates. Ici on donne un avant goût de ces objets conceptuels. En général, un automate déterministe est un dispositif (une application) qui à chaque état interne et à chaque donnée en entrée il décide d une action, fonction uniquement de l état interne et de l entrée. Il est dit non-déterministe si résultat est choisi parmi une collection finie d actions possibles (l action est une «fonction multivaluée» de l état interne et de l entrée). Selon le mode d évolution de l automate, on distingue Machine de Turing (TM) : un dispositif avec un nombre fini d états internes et une entrée finie mais non bornée, Automate à entrée bornée (LBA) : où l entrée cette fois-ci est bornée. L acronyme LBA provient du nom anglais de l automate : linear bounded automaton. Automate à pile (PDA) : où l entrée est finie mais il existe un ruban auxiliaire non-borné permettant de stocker les résultats intermédiaires sous forme de pile de type «dernier venu-premier sorti». L acronyme PDA provient du nom anglais de l automate : push down automaton ; la discipline de service dernier venu premier sorti est aussi connue sous son acronyme anglais LIFO pour last in first out. Automate fine (FA) : où il n y a qu un nombre fini d états intermédiaires et une entrée de taille finie. 2.4 Exercices Langages formels, grammaires 1. Décrire le langage L(Γ) engendré par les grammaires suivantes :
2.4 Exercices 26 (a) S as b A et A b A c, (b) S aas aa, (c) S aas a b, (d) S a A et A bs a. 2. Pour chacune des grammaires de l exercice précédent, préciser son type. 3. Soit Γ la grammaire décrite par les productions : S A AC, A a b c, C AC BC A B, B 0 1, 9. Repérer les affirmations vraies parmi les suivantes : (a) ab037 L(Γ), (b) S 2a3b, (c) aaaa L(Γ), (d) S a, (e) S ab, (f) BC 2, (g) BC + 2, (h) C 2abc, (i) C 5 3b4. 4. Écrire une grammaire génératrice pour les langages suivants : (a) L = {a m b n ;m 1,n 1}, (b) L = {a m b n ;m 0,n 3}.