3. Grammaires : Backus-Naur Form

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

Théorie des Langages

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

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

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

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

Évaluation et implémentation des langages

Algorithme. Table des matières

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.

Représentation d un entier en base b

Continuité et dérivabilité d une fonction

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

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

Initiation à la Programmation en Logique avec SISCtus Prolog

Nom de l application

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

TP 1. Prise en main du langage Python

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

TP1 - Prise en main de l environnement Unix.

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

Les chaînes de caractères

chapitre 4 Nombres de Catalan

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

UNIVERSITE LA SAGESSE FACULTÉ DE GESTION ET DE FINANCE MBA OPTION MIS. MIAGe METHODES INFORMATIQUES APPLIQUEES A LA GESTION

L informatique en BCPST

Résolution de noms. Résolution de noms

Feuille couverture de tâche du cadre du CLAO

La fonction exponentielle

Grammaires d unification

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Maple: premiers calculs et premières applications

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Initiation à l algorithmique

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Correction de l examen de la première session

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

Guide de démarrage rapide

Formula Negator, Outil de négation de formule.

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

Utilisation des tableaux sémantiques dans les logiques de description

Réseaux IUP2 / 2005 DNS Système de Noms de Domaine

Étude de l application DNS (Domain Name System)

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

Algorithmes récursifs

UTILISER UN SITE COLLABORATIF

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Limites finies en un point

Utilisation d objets : String et ArrayList

Résolution de noms. Résolution de noms

LES GENERATEURS DE NOMBRES ALEATOIRES

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

Chapitre 2. Matrices

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Codage d information. Codage d information : -Définition-

Conception des bases de données : Modèle Entité-Association

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Jeux de caracte res et encodage (par Michel Michaud 2014)

Cryptographie et fonctions à sens unique

Cours de Master Recherche

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Domain Name Service (DNS)

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

Microsoft Excel. Tableur

Documentation RBS Change E-Commerce Core

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

GESTION ELECTRONIQUE DE DOCUMENTS

Standard sur les noms de domaine Internet (SGQRI 021) Alain La Bonté

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

Exercice 6 Associer chaque expression de gauche à sa forme réduite (à droite) :

COMMENT ECRIRE UN «JOB AID»

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Note de cours. Introduction à Excel 2007

Python - introduction à la programmation et calcul scientifique

Chapitre 1 Régime transitoire dans les systèmes physiques

Dérivation CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

Le modèle standard, SPE (1/8)

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

Présentation du langage et premières fonctions

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Initiation à LabView : Les exemples d applications :

Fiche PanaMaths Calculs avec les fonctions sous Xcas

Premiers exercices d Algèbre. Anne-Marie Simon

Rappel sur les bases de données

1.1 L EXPLORATEUR WINDOWS

Programmation Internet Cours 4

COMMENT REDIGER UN RAPPORT TECHNIQUE?

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

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

Transcription:

3. Grammaires : Backus-Naur Form Au départ : Backus-Naur Form : Métalangage introduit par ALGOL60 Basée sur la définition inductive. Moyen simple et élégant de décrire toutes les phrases permises d un langage (de programmation) Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 1/30

3.1. Backus-Naur Form Exemple (en langage naturel) : <phrase > : := <sujet ><verbe ><objet > <sujet > : := <déterminant ><nom > <objet > : := <déterminant ><nom > <verbe > : := mangent voient <déterminant > : := les des <nom > : := chats lions souris jambons Exemple de phrase permise : les jambons mangent des lions <phrase > : := <sujet > <verbe ><objet > <déterminant ><nom ><verbe > <objet > les ><nom ><verbe ><objet >... Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 2/30

3.1. Backus-Naur Form On représentera une phrase par un arbre syntaxique. Cet arbre constitue une preuve que la phrase appartient bien au langage. Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 3/30

3.1. Backus-Naur Form Notation moderne : la forme est diffférente : au lieu de : := Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 4/30

3.1. Backus-Naur Form Phrase Sujet Verbe Objet Sujet Déterminant Nom Objet Déterminant Nom Verbe mangent voient Déterminant les des Nom chats lions souris jambons Ou, plus simplement : P SVO S DN O DN V mangent voient D les des N chats lions souris jambons Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 5/30

3.1. Backus-Naur Form Règles de grammaire : P SVO S DN O DN V mangent voient D les des N chats lions souris jambons Dérivation d une phrase ( mot du langage) : les jambons mangent des lions P SVO DNVO les NVO les jambons VO les jambons mangent O les jambons mangent DN les jambons mangent des N les jambons mangent des lions Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 6/30

3.1. Backus-Naur Form Exemple 2 : le langage des expressions artithmétiques simplissimes Start Exp Exp Exp + Exp Exp (Exp) Exp un nombre Exemple de construction possible : Start Exp (Exp) (Exp + Exp) (24 + Exp) (24+32) On a montré que l expression (24+32) appartient bien au langage défini par la grammaire Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 7/30

3.2. Définition formelle des grammaires Définition Une grammaire est un quadruplet G = (N, T, P, S) où : N est l ensemble des symboles non terminaux T est l ensemble des symboles terminaux : caractères de l alphabet P est un ensemble de règles de production, de la forme α β, avec α (N T ) +, β (N T ) S = symbole de départ appelé l axiome Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 8/30

3.2. Définition formelle des grammaires Notations et remarques Pour caractères de N : on utilisera (habituellement) des majuscules. Pour caractères de T : on utilisera (habituellement) des minuscules. Pour les règles de P, nos règles seront de la forme X β, avec X N et β (N T ). L axiome, noté S (habituellement), est la base de la définition inductive, et c est la racine de tout arbre de dérivation valide Souvent, on décrit une grammaire seulement par ses règles! Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 9/30

3.2. Définition formelle des grammaires On peut avoir des règles de production dont la partie droite est réduite à ɛ ; on appelera ces règles des ɛ-productions. Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 10/30

3.2. Langage engendré par une grammaire Définition Pour une grammaire G, on note L(G) le langage engendré par G : c est l ensemble des mots que l on peut définir à partir de l axiome de G en appliquant un nombre fini de fois des règles de G. Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 11/30

3.2. Définition formelle des grammaires Exemple : Grammaire G 1 : S as S bs S a S b S ɛ Quel langage décrit cette grammaire? Comment pourrait-on simplifier cette grammaire? Que se passe-t-il si on retire l ɛ production? Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 12/30

3.2. Définition formelle des grammaires Exemple 2 : On veut traduire le langage sur Σ = {a,b} où tous les mots sont de la forme ω = α aa β Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 13/30

3.2. Définition formelle des grammaires On va utiliser la grammaire G 2 : S AaaB A aa ba ɛ B ab bb ɛ Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 14/30

3.2. Définition formelle des grammaires Pour le mot : ω = abbaabb S AaaB A aa A ba A ɛ B ab B bb B ɛ S A a a B a A b B b A b B b A ε Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 15/30

3.2. Définition formelle des grammaires Grammaire sous forme factorisée S AaaB A aa A ba A ɛ B ab B bb B ɛ devient : S AaaB A aa ba ɛ B ab bb ɛ Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 16/30

3.2. Définition formelle des grammaires Les règles de production ont une numérotation implicite (de 1 à 7 ici). S AaaB A aa ba ɛ B ab bb ɛ S AaaB (1) A aa (2) ba(3) ɛ(4) B ab(5) bb(6) ɛ(7) Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 17/30

Arbre syntaxique Définition Un arbre syntaxique est un arbre dont la racine est l axiome (S), dont les noeuds internes sont étiquetés par des symboles de N, et dont les feuilles sont étiquetées par des symboles de T ou par le mot vide ɛ. Chaque noeud interne correspond à une règle de production. Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 18/30

Exemple avec G 1 : S as bs a b ɛ mot ω = abab arbre syntaxique : S (1) a S (2) b S (1) a S (4) b Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 19/30

3.2. Définition formelle des grammaires Pour un langage donné, il n y a pas de grammaire unique!!!! Exemple : les deux grammaires suivantes décrivent le même langage : G 1 : S as bs a b ɛ G 2 : S as bs ɛ Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 20/30

3.2. Définition formelle des grammaires Définition On dit que deux grammaires G 1 et G 2 sont équivalentes, noté G 1 G 2, si elles engendrent le même langage, i.e. si L(G 1 ) = L(G 2 ). Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 21/30

3.3. Dérivations Si α β est une production de P, on note γ 1 αγ 2 γ 1 βγ 2. On dit qu on a procédé à une dérivation. On dit que γ 1 βγ 2 se dérive de γ 1 αγ 2. Exemple : S AaaA et AaaA aaaaa sont des dérivations pour la grammaire G 2 (S AaaA ; A aa ba ɛ). On peut étiqueter la dérivation par le numéro de la règle de production utilisée. Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 22/30

3.3. Dérivations Pour un nombre fini de dérivations successives γ 1 αγ 2 γ 1 βγ 2 ω, on écrit γ 1 αγ 2 ω. Exemple : S AaaA aaaaa ou S aaaaa S abbaabb Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 23/30

3.3. Dérivations Définition On appelle dérivation gauche une suite de dérivations obtenues en choisissant à chaque étape le symbole non terminal le plus à gauche. On définit de façon similaire la dérivation droite. Exemple de dérivation gauche avec G 2 : S AaaB ; A aa ba ɛ ; B ab bb ɛ : S (1) AaaB (2) aaaab (4) aaab (6) aaabb (7) aaab Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 24/30

3.3. Dérivations Définition On appelle langage engendré par une grammaire G = (N, T, P, S) l ensemble des mots ω de T tels que S ω. On le note L(G). On dit qu un mot ω est engendré par une grammaire G si ω L(G). Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 25/30

3.4. Grammaires ambigües Définition Une grammaire G est dite ambiguë s il existe un mot ω de L(G) qui admet au moins deux arbres syntaxiques différents. Exemple : G 1 : G 1 : S as bs a b ɛ Le mot ω = ab admet deux arbres syntaxiques différents : S a b (1) S (2) S (5) a S (1) S (4) ε ε Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 26/30

3.4. Grammaires ambigües Définition Un langage est dit ambigü si toutes les grammaires qui l engendrent sont ambiguës. Exemple : G 1 : S as bs a b ɛ G 2 : S as bs ɛ L(G 1 ) = L(G 2 ) ; G 1 est ambiguë mais G 2 n est pas ambiguë, donc L(G 1 ) = L(G 2 ) n est pas un langage ambigü. Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 27/30

3.5. Grammaires régulières Définition Une grammaire G est dite régulière si toutes ses règles de production sont de la forme : A αb, avec : A N, α T, B N ou B = ɛ Exemple : G 1 : S as bs a b ɛ Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 28/30

3.6. Décidabilité Définition Un problème est dit indécidable si il n existe pas (et il ne peut pas exister) d algorithme générique pour le résoudre. Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 29/30

3.6. Décidabilité Les problèmes suivants sur les grammaires sont indécidables : Deux grammaires G 1 et G 2 sont-elles équivalentes? Deux grammaires engendrent-elles des langages ayant un mot en commun? Y a-t-il des mots qu une grammaire n engendre pas? Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 30/30

3.7. Hiérarchie de Chomsky sur les grammaires Type Nom Type de production 0 Langages récursivement X Y énumérables 1 Langages contextuels X Y 2 Langages context-free ou algébriques 3 Langages rationnels (réguliers) X N +, Y (N T ) X N +, Y (N T)*, Y X X Y X N, Y (N T)* X Y A αb, avec : A N, α T, B N ou B = ɛ Anne Berry, Cours de Théorie des Langages Partie 1 : 3. Grammaires 31/30