Théorie des langages. Alexis Nasr

Documents pareils
Théorie des Langages

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

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.

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

Note de cours. Introduction à Excel 2007

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Probabilités sur un univers fini

Chapitre 2. Matrices

Vecteurs. I Translation. 1. Définition :

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

EVALUATION Nombres CM1

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

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

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

Initiation à la programmation en Python

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Calcul différentiel sur R n Première partie

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

CORRECTION EXERCICES ALGORITHME 1

Cours d Informatique

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

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

Pour l épreuve d algèbre, les calculatrices sont interdites.

Structures algébriques

INFORMATIONS DIVERSES

Représentation d un entier en base b

#"$&'$+*" (" ),'-"."'($ %($

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

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

Coefficients binomiaux

L AIDE AUX ATELIERS D ARTISTES :

Continuité et dérivabilité d une fonction

La circulation méconnue de l épargne règlementée en France!

Présentation du cours de mathématiques de D.A.E.U. B, remise à niveau

chapitre 4 Nombres de Catalan

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Algorithmes récursifs

par Denis-Charles Cisinski & Georges Maltsiniotis

5 ème Chapitre 4 Triangles

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 =

Dérivation : Résumé de cours et méthodes

N.B : L explorateur vivement conseillé pour utiliser le service d inscription est Firefox. Accessible à :

Premiers exercices d Algèbre. Anne-Marie Simon

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Excel 2007 Niveau 3 Page 1

Aide : publication de décisions VS

Géométrie dans l espace

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Probabilités sur un univers fini

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Perfectionnement Excel 2007

CHAPITRE 10. Jacobien, changement de coordonnées.

Documentation SecurBdF

UTILISER UN SITE COLLABORATIF

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

Gestion de fichier de configuration par une vue abstraite modifiable

Compter à Babylone. L écriture des nombres

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

DOCM Solutions officielles = n 2 10.

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)

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

Les BRMS Business Rules Management System. Groupe GENITECH

Cours d Analyse. Fonctions de plusieurs variables

Exercices - Polynômes : corrigé. Opérations sur les polynômes

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

Chapitre 2. Eléments pour comprendre un énoncé

Initiation à LabView : Les exemples d applications :

TP 1. Prise en main du langage Python

Algorithmique et Programmation, IMA

1 Introduction au codage

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

Mathématiques appliquées à l'économie et à la Gestion

Raisonnement par récurrence Suites numériques

SOLUTIONS TECHNOLOGIQUES Fiche activité élève

LES GENERATEURS DE NOMBRES ALEATOIRES

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

NAVIGATION SUR INTERNET EXPLORER

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

STAGE IREM 0- Premiers pas en Python

CALCUL DES PROBABILITES

3. Conditionnement P (B)

Créer vos données sources avec OpenOffice, adieu Excel

Algèbre binaire et Circuits logiques ( )

UML (Paquetage) Unified Modeling Language

Cours d algorithmique pour la classe de 2nde

Intégration et probabilités TD1 Espaces mesurés Corrigé

Créer et modifier un fichier d'import des coordonnées approximatives avec Excel

Qu est-ce qu une probabilité?

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

TUTORAT DU PORTAIL FAMILLES

Triangle de Pascal dans Z/pZ avec p premier

Salle de technologie

Les Angles. I) Angles complémentaires, angles supplémentaires. 1) Angles complémentaires. 2 Angles supplémentaires. a) Définition.

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Algorithme. Table des matières

Représentation géométrique d un nombre complexe

Limites finies en un point

Transcription:

Théorie des langages Alexis Nasr

Lemme de l étoile Soit L un langage régulier. Il existe un entier k, appelé longueur de pompage, tel que tout mot w L de longueur k peut s écrire sous la forme w = xyz avec : 1 xy k, 2 y > 0, 3 xy i z L pour tout i 0.

Preuve Soient A un AFD reconnaissant L et k le nombre d états de A. Soit w = w 1,n = w 1... w n un mot de L de longueur n. Notons (q 0, w 1,n ) (q 1, w 2,n ) (q n 1, w n,n ) (q n, ε) la suite de mouvements que A effectue sur w. Si n k, cette suite passe deux fois par le même état! Autrement dit, il existe q i, q j dans cette suite tels que 0 i < j n et q i = q j. Mais alors, pour chaque t 0, la séquence de mouvements (q 0, w 1,n ) {(q i 1,n ) (q j, w j+1,n )} t (q n, ε) reconnaît aussi un mot de L ({(q i 1,n ) (q j, w j+1,n )} t dénote le fait que cette séquence est répétée t fois). Notons x = w 1,i, y = w i+1,j et z = w j+1,n. Alors xy t z L pour chaque t, et xy k, y > 0.

L = a n b n n est pas régulier Considérons que L est régulier, soit k la longueur de pompage. Soit s la chaine a k b k L étant régulier et s > k alors s doit s écrire s = xyz avec i 0, xy i z L Montrons que cela est impossible : 1 Si y n est composé que de a, alors xyyz / L car xyyz contient plus de a que de b 2 Si y n est composé que de b on aboutit aussi à une contradiction 3 Si y contient des a et des b alors xyyz n est plus de la forme a n b n Donc, si on considère que L est régulier, on aboutit à une contradiction. L n est donc pas régulier!

Grammaires de réécriture Une grammaire de réécriture est un 4-uplet N, Σ, P, S où : N est un ensemble de symboles non terminaux, appelé l alphabet non terminal. Σ est un ensemble de symboles terminaux, appelé l alphabet terminal, tel que N et Σ soient disjoints. P est un sous ensemble fini de : (N Σ) N(N Σ) (N Σ) un élément (α, β) de P, que l on note α β est appelé une règle de production ou règle de réécriture. α est appelé partie gauche de la règle β est appelé partie droite de la règle S est un élément de N appelé l axiome de la grammaire.

Notation Pour alléger les notations, on note : les n règles : α β 1 β 2... β n α β 1, α β 2,..., α β n

Proto-mots d une grammaire Les proto-mots d une grammaire G = N, Σ, P, S sont des mots construits sur l alphabet Σ N, on les définit récursivement de la façon suivante : S est une proto-mot de G si αβγ est une proto-mot de G et β δ P alors αδγ est une proto-mot de G. Une proto-mot de G ne contenant aucun symbole non terminal est appelé un mot généré par G. Le langage généré par G, noté L(G) est l ensemble des mots générés par G.

Dérivation L opération qui consiste à générer une proto-mot αδγ à partir d une proto-mot αβγ et d une règle de production r de la forme β δ est appelée l opération de dérivation. Elle se note à l aide d une double flèche : αβγ αδγ On note α k β pour indiquer que β se dérive de α en k étapes. On définit aussi les deux notations + et de la façon suivante : α + β α k β avec k > 0 α β α k β avec k 0

Langage généré par une grammaire L(G) est défini de la façon suivante : L(G) = {m Σ S + m} Deux grammaires G et G sont équivalentes si L(G) = L(G ).

L 1 = {ε, a, aa, aaa,...} G = {S}, {a}, {S Sa ε}, S Sous-ensemble des proto-mots de G S ε Sa a Saa aa Saaa aaa Saaaa

L 2 = {ε, ab, aabb, aaabbb, aaaabbbb,...} G = {S}, {a, b}, {S asb ε}, S Sous-Ensemble des proto-mots de G S ε asb ab aasbb aabb aaasbbb

L 3 = {aa, bb, aaaa, abba, baab, bbbb,...} G = {S}, {a, b}, {S asa bsb aa bb}, S Sous-Ensemble des proto-mots de G S asa aa bb bsb aasaa aaaa abba absba basab baab bbbb bbsbb

L 4 = {ε, abc, aabbcc, aaabbbccc,...} G = {S, S 1, S 2 }, {a, b, c}, {S as 1 c, S 1 b SS 2, cs 2 S 2 c, bs 2 bb}, S. Sous-Ensemble des proto-mots de G S as 1 c abc ass 2 c aas 1 cs 2 c aabcs 2 c aass 2 cs 2 c aabs 2 cc aabbcc

Sens de dérivation G = {E, T, F}, {+,, a}, {E T + E T, T F T F, F a}, E Les proto-mots générées lors d une dérivation peuvent comporter plus d un symbole non terminal : E T + E T + T F + T F + F T F + a T F + a F a + a F a + a a

Sens de dérivation G = {E, T, F}, {+,, a}, {E T + E T, T F T F, F a}, E Les proto-mots générées lors d une dérivation peuvent comporter plus d un symbole non terminal : E T + E T + T F + T F + F T F + a T F + a F a + a F a + a a Dérivation droite : on réécrit le non terminal le plus à droite : E T + E T + T T + F T T + F F T + F a T + a a F + a a a + a a

Sens de dérivation G = {E, T, F}, {+,, a}, {E T + E T, T F T F, F a}, E Les proto-mots générées lors d une dérivation peuvent comporter plus d un symbole non terminal : E T + E T + T F + T F + F T F + a T F + a F a + a F a + a a Dérivation droite : on réécrit le non terminal le plus à droite : E T + E T + T T + F T T + F F T + F a T + a a F + a a a + a a Dérivation gauche : on réécrit le non terminal le plus à gauche : E T + E F + E a + E a + T a + F T a + a T a + a F a + a a

Arbre de dérivation E T + E F a F T * T a F a Un arbre de dérivation pour G (G = N, Σ, P, S ) est un arbre ordonné et étiqueté dont les étiquettes appartiennent à l ensemble N Σ {ε}. Si un nœud de l arbre est étiqueté par le non terminal A et ses fils sont étiquetés X 1, X 2,..., X n alors la règle A X 1, X 2,..., X n appartient à P.

Arbre de dérivation Un arbre de dérivation indique les règles qui ont été utilisées dans une dérivation, mais pas l ordre dans lequel elles ont été utilisées. A un arbre de dérivation correspondent une seule dérivation droite et une seule dérivation gauche.

Ambiguïté Une grammaire G est ambiguë s il existe au moins un mot m dans L(G) auquel correspond plus d un arbre de dérivation. Exemple : E E + E E E a E E E + E E * E a E * E E + E a a a a a

Types de règles Les grammaires peuvent être classées en fonction de la forme de leurs règles de production. On définit cinq types de règles de production : Une règle est régulière à gauche si et seulement si elle est de la forme A xb ou A x avec A, B N et x Σ. Une règle est régulière à droite si et seulement si elle est de la forme A Bx ou A x avec A, B N et x Σ. Une règle A α est un règle hors-contexte si et seulement si : A N et α (N Σ)

Types de règles Une règle α β est une règle contextuelle si et seulement si : α = gad et β = gbd avec g, d, B (N Σ) et A N. Le nom contextuelle provient du fait que A se réecrit B uniquement dans le contexte g d. Une règle α β est une règle sans restriction si et seulement si : α 1

Type d une grammaire Une grammaire est : régulière ou de type 3 si elle est régulière à droite ou régulière à gauche. Une grammaire est régulière à gauche si toutes ses règles sont régulières à gauche et une grammaire est régulière à droite si toutes ses règles sont régulières à droite. hors contexte ou de type 2 si toutes ses règles de production sont hors contexte. dépendante du contexte ou de type 1 si toutes ses règles de production sont dépendantes du contexte. sans restrictions ou de type 0 si toutes ses règles de production sont sans restrictions.

Hiérarchie de Chomsky grammaires sans restrictions type 0 grammaires contextuelles type 1 grammaires hors contexte type 2 grammaires régulières type 3

Type d un langage Un langage pouvant être généré par une grammaire de type x et pas par une grammaire d un type supérieur dans la hiérarchie, est appelé un langage de type x. Type Nom 3 régulier 2 hors contexte 1 dépendant du contexte 0 récursivement énumérable

Exemples de langages réguliers L = {m {a, b} } L = {m {a, b} m a mod 2 = 0} L = {m {a, b} m = xaaa avec x {a, b} } L = {m {a, b} m a mod 2 = 0 et m b mod 2 = 0}

Exemples de langages réguliers L = {m {a, b} } G = {S}, {a, b}, {S as bs ε}, S L = {m {a, b} m a mod 2 = 0} L = {m {a, b} m = xaaa avec x {a, b} } L = {m {a, b} m a mod 2 = 0 et m b mod 2 = 0}

Exemples de langages réguliers L = {m {a, b} } G = {S}, {a, b}, {S as bs ε}, S L = {m {a, b} m a mod 2 = 0} G = {S, T}, {a, b}, {S at bs ε, T as bt}, S L = {m {a, b} m = xaaa avec x {a, b} } L = {m {a, b} m a mod 2 = 0 et m b mod 2 = 0}

Exemples de langages réguliers L = {m {a, b} } G = {S}, {a, b}, {S as bs ε}, S L = {m {a, b} m a mod 2 = 0} G = {S, T}, {a, b}, {S at bs ε, T as bt}, S L = {m {a, b} m = xaaa avec x {a, b} } G = {S, T, U}, {a, b}, {S as bs at, T au, U a}, S L = {m {a, b} m a mod 2 = 0 et m b mod 2 = 0}

Exemples de langages réguliers L = {m {a, b} } G = {S}, {a, b}, {S as bs ε}, S L = {m {a, b} m a mod 2 = 0} G = {S, T}, {a, b}, {S at bs ε, T as bt}, S L = {m {a, b} m = xaaa avec x {a, b} } G = {S, T, U}, {a, b}, {S as bs at, T au, U a}, S L = {m {a, b} m a mod 2 = 0 et m b mod 2 = 0} G = {S, T, U, V}, {a, b}, {S at bu, T as bv, V au bt, U av bs ε}, S

Exemples de langages hors-contexte L = {a n b n n 0} L = {mm 1 m {a, b} } (langage miroir)

Exemples de langages hors-contexte L = {a n b n n 0} G = {S}, {a, b}, {S asb ε}, S L = {mm 1 m {a, b} } (langage miroir)

Exemples de langages hors-contexte L = {a n b n n 0} G = {S}, {a, b}, {S asb ε}, S L = {mm 1 m {a, b} } (langage miroir) G = {S}, {a, b}, {S asa bsb aa bb}, S

Exemples de langages contextuels L = {a n b n c n n 0}

Exemples de langages contextuels L = {a n b n c n n 0} G = {S, B, W, X}, {a, b, c}, { S abc, S asbc, cb WB, WB WX, WX BX, BX BC, bb bb}, S

Dérivation de a 3 b 3 c 3 S 2 asbc 2 aasbcbc 1 aaabcbcbc 3 aaabwbcbc 4 aaabwxcbc 5 aaabbxcbc 6 aaabbccbc 3 aaabbcwbc 4 aaabbcwxc 5 aaabbcbxc 6 aaabbcbcc 3 aaabbwbcc 4 aaabbwxcc 5 aaabbbxcc 6 aaabbbccc 7 aaabbbccc aaabbbccc 7

Exemples de langages récursivement énumérables L = {m m avecm {a, b} } L = {a 2n avec n 0} L = { x 1 x 2... x l x i {0, 1} et x i = x j pour tout i = j}

Grammaire v/s Reconnaisseur Une grammaire d un langage L permet de générer tous les mots appartenant à L. Un reconnaisseur pour un langage L est un programme qui prend en entrée un mot m et répond oui si m appartient à L et non sinon. Pour chaque classe de grammaire, il existe une classe de reconnaisseurs qui définit la même classe de langages. Type de grammaire Type de reconnaisseur régulière Automate fini hors contexte Automate à pile dépendantes du contexte Linear Bounded Automaton sans restriction Machine de Turing