Langages et grammaires formels

Documents pareils
1.1 Rappels sur le produit cartésien Relations Graphes dirigés Arbres Exercices Motivation...

Théorie des Langages

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

C algèbre d un certain groupe de Lie nilpotent.

CH.6 Propriétés des langages non contextuels

Initiation à la Programmation en Logique avec SISCtus Prolog

1 Introduction au codage

Évaluation et implémentation des langages

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Représentation d un entier en base b

Fondements de l informatique Logique, modèles, et calculs

Les chaînes de caractères

DOCM Solutions officielles = n 2 10.

TP 1. Prise en main du langage Python

Université Paris-Dauphine DUMI2E 1ère année, Applications

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Algèbre binaire et Circuits logiques ( )

Continuité et dérivabilité d une fonction

Résolution d équations non linéaires

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Diapo 1. Objet de l atelier. Classe visée. Travail en co-disciplinarité (identité et origine académique des IEN)

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Introduction à MATLAB R

MPI Activité.10 : Logique binaire Portes logiques

2.4 Représentation graphique, tableau de Karnaugh

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Réalisabilité et extraction de programmes

Corps des nombres complexes, J Paul Tsasa

6. Les différents types de démonstrations

COMMENT REDIGER UN RAPPORT TECHNIQUE?

Utilisation des tableaux sémantiques dans les logiques de description

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Calculabilité Cours 3 : Problèmes non-calculables.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Introduction à l étude des Corps Finis

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

SUR CERTAINS SYSTEMES D EQUATIONS AVEC CONTRAINTES DANS UN GROUPE LIBRE (*)

Définitions. Numéro à préciser. (Durée : )

Figures composées de pixels et monoïde inversif

Génie Logiciel avec Ada. 4 février 2013

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Rappel sur les bases de données

Chap. 3: Le modèle de données entité-association (E.A.)

Planche n o 22. Fonctions de plusieurs variables. Corrigé

Algorithmique et Programmation Fonctionnelle

Introduction à la théorie des graphes. Solutions des exercices

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Chapitre 2 Le problème de l unicité des solutions

Angles orientés et trigonométrie

Algorithme. Table des matières

L informatique en BCPST

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Apllication au calcul financier

Machines virtuelles Cours 1 : Introduction

Python - introduction à la programmation et calcul scientifique

Cours Fonctions de deux variables

Premiers exercices d Algèbre. Anne-Marie Simon

Cours d Analyse. Fonctions de plusieurs variables

Système binaire. Algèbre booléenne

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

CHAPITRE VIII : Les circuits avec résistances ohmiques

Résolution de systèmes linéaires par des méthodes directes

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Rappels sur les suites - Algorithme

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Chapitre VI- La validation de la composition.

Image d un intervalle par une fonction continue

Nombre dérivé et tangente

MIS 102 Initiation à l Informatique

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Notes du cours MTH1101N Calcul I Partie II: fonctions de plusieurs variables

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Fonctions homographiques

3. Conditionnement P (B)

O, i, ) ln x. (ln x)2

MATHÉMATIQUES ET INFORMATIQUE

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Le chiffre est le signe, le nombre est la valeur.

Les apports de l informatique. Aux autres disciplines

Chapitre 1 Qu est-ce qu une expression régulière?

chapitre 4 Nombres de Catalan

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d Informatique

Corrigé des TD 1 à 5

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

Algorithmes récursifs

Fiche de projet pour les institutions publiques

par Denis-Charles Cisinski & Georges Maltsiniotis

Informatique Générale

Cabri et le programme de géométrie au secondaire au Québec

Transcription:

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}.