Langages hors-contexte

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

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

Cours de Master Recherche

Évaluation et implémentation des langages

Intelligence Artificielle et Robotique

Grammaires d unification

Utilisation des tableaux sémantiques dans les logiques de description

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

Continuité et dérivabilité d une fonction

Cours d algorithmique pour la classe de 2nde

Raisonnement probabiliste

Mesurer les performances (CPU) sous Linux

Algorithmes récursifs

INFORMATIONS DIVERSES

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

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

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Plan du cours Cours théoriques. 29 septembre 2014

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Document d aide au suivi scolaire

Thème 17: Optimisation

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

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

Les chaînes de caractères

Correction de l examen de la première session

FRANCAIS DGM1. Centrale Vigik 1 porte. N d homologation : - PS MS Gamme: Vigik MANUEL D INSTALLATION.

CHAPITRE VIII : Les circuits avec résistances ohmiques

Journée_: Modules HoraireEpreuve

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

La syllabe (1/5) Unité intuitive (différent du phonème) Constituant essentiel pour la phonologie au même titre que phonème et trait

Circuits RL et RC. Chapitre Inductance

Thèmes et situations : La poste et la banque. Fiche pédagogique

Machines virtuelles Cours 1 : Introduction

Votre Réseau est-il prêt?

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.

Algèbre binaire et Circuits logiques ( )

Dualité dans les espaces de Lebesgue et mesures de Radon finies

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

BANQUES DE DONNÉES PÉDAGOGIQUES

REPUBLIQUE ISLAMIQUE DE MAURITANIE

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

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

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 =

Cours 1 : La compilation

VOS PREMIERS PAS AVEC TRACENPOCHE

INSTRUCTION INTERMINISTÉRIELLE SUR LA SIGNALISATION ROUTIÈRE du 22 octobre 1963

Initiation à la programmation en Python

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

Note de cours. Introduction à Excel 2007

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Activité pour développer le concept de phrase et de mot

Chapitre 2. Matrices

L examen des recettes lors du contrôle budgétaire d une collectivité territoriale en France. Séminaire Eurorai Alicante 23 avril

! Text Encoding Initiative

Caractéristiques du nom

Poker. A rendre pour le 25 avril

Les systèmes de gestion de version

UNITÉS ET MESURES UNITÉS DE MESURE DES LONGUEURS. Dossier n 1 Juin 2005

Documentation d information technique spécifique Education. PGI Open Line PRO

Chapitre I Notions de base et outils de travail

Systèmes décisionnels et programmation avancée

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

TP 1. Prise en main du langage Python

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

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

L'identité de l'entreprise

Cours d Analyse. Fonctions de plusieurs variables

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

MIS 102 Initiation à l Informatique

Fonctions de deux variables. Mai 2011

Limites finies en un point

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

OASIS Date de publication

Solutions en ligne Guide de l utilisateur

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

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)

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

UNITÉ 5 VOILÀ VOTRE CLÉ!

EXCEL TUTORIEL 2012/2013

L ACCOMPAGNEMENT PERSONNALISE AU LYCEE PICASSO DE PERPIGNAN (Document de travail)

Découverte du tableur CellSheet

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

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

DIFFÉRENCE ENTRE UN COMPLÉMENT D OBJET DIRECT ET UN COMPLÉMENT D OBJET INDIRECT ACCORD DES PARTICIPES PASSÉS MARCEL PÈREZ 2001

S3CP. Socle commun de connaissances et de compétences professionnelles

Fiche PanaMaths Calculs avec les fonctions sous Xcas

Présentation du langage et premières fonctions

OCL - Object Constraint Language

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Tp 1 correction. Structures de données (IF2)

ACCÈS SÉMANTIQUE AUX BASES DE DONNÉES DOCUMENTAIRES

eduscol Ressources pour la voie professionnelle Français Ressources pour les classes préparatoires au baccalauréat professionnel

Maple: premiers calculs et premières applications

Transcription:

Langages hors-contexte Damien Nouvel Damien Nouvel (Inalco) Langages hors-contexte 1 / 29

Origines Plan 1. Origines 2. Définitions 3. Dérivations 4. Simplification Damien Nouvel (Inalco) Langages hors-contexte 2 / 29

Origines Langages réguliers et grammaires Les langages réguliers (ou rationnels) reconnaissent Des mots issus de lexiques Des formes normales (chiffres, dates, etc.) ñ Ils sont insuffisants pour Les formes récursives Les structures de type ta n b n u La recherche de la syntaxe dans le langage naturel L analyse de programmes ñ La machine de Turing peut faire mieux que ça! Damien Nouvel (Inalco) Langages hors-contexte 3 / 29

Origines Historique des grammaires Hiérarchie de Chomsky (1956) Analyse du langage naturel (morphologie, syntaxe) Grammaire formelles Type 0 : grammaires générales (machine de Turing) Type 1 : grammaires contextuelles (automates lin. bornés) Type 2 : grammaires hors-contexte (automates à pile) Type 3 : grammaires régulières (automates à états finis) Langages de programmation artificiels (compilation) Compilateurs mot-à-mot (assembleur) Expressions mathématiques : arbres d analyse Compilateurs modernes Analyse lexicale (scanner) Analyse syntaxique (parser) ñ Utilisation des méthodes linguistiques pour la programmation Damien Nouvel (Inalco) Langages hors-contexte 4 / 29

Définitions Plan 1. Origines 2. Définitions 3. Dérivations 4. Simplification Damien Nouvel (Inalco) Langages hors-contexte 5 / 29

Définitions Arbre d expression Analyse de l expression mathématique 1 2 + 3?9 Priorité des opérateurs : ( 1?9)) + (3 2 Arbre d expression : + 1 2 3? ñ Chaque branche est aussi une expression valide : 1 2, 3?9 9 Damien Nouvel (Inalco) Langages hors-contexte 6 / 29

Définitions Backus-Naur Form Langage de programmation Algol 1960 (J. Backus et P. Naur) Règles de description du langage Pour la programmation <ifstruct> ::= "if" "(" <test> ")" "{" <block> "}" <test> ::= <var> "==" <num> <var> "&&" <var> <block> ::= <inst> <inst> <block> ñ Vérification de la syntaxe des programmes ñ Récursivité dans les règles Pour la linguistique <E> ::= <GN> <GV> <GN> ::= <DET> <NC> <DET> <ADJ> <NC> <GV> ::= "marche" "dort" <DET> ::= "le" <NC> ::= "chien" "chat" <ADJ> ::= "petit" "gros" Damien Nouvel (Inalco) Langages hors-contexte 7 / 29

Définitions Définition des grammaires hors-contexte ñ Reconnaissance / génération de langages Quadruplet G = (T, N, R, S) T : symboles terminaux ñ Les mots possibles des énoncés N : symboles non-terminaux ñ Groupes de mots intéressants (GN, GV, etc.) R Ă N ˆ (N Y T) : règles ñ Déterminent la composition des groupes de mots ñ Notations Une règle s écrit A Ñ α avec A P N et α P (N Y T) Des règles A Ñ α et A Ñ β s écrivent A Ñ α β S P N : axiome (symbole de départ) ñ Représente l énoncé Damien Nouvel (Inalco) Langages hors-contexte 8 / 29

Définitions Exemple Expressions mathématiques N = ts, Eu et T = t+,,,?, (, ), 1, 2, 3...u Règles : S Ñ E E Ñ E + E E Ñ E E E Ñ E E E Ñ (E) E Ñ? E E Ñ 1 2 3... Une dérivation possible : S Ñ E Ñ E + E Ñ E E + E Ñ 1 2 + 3?9 Damien Nouvel (Inalco) Langages hors-contexte 9 / 29

Définitions Exercices Définissez des grammaires qui génèrent Le langage régulier ab cd Le langage ta n c n, n ą 0u Le langage ta n bc m d, n ą 0, m ą nu Les palindrômes Damien Nouvel (Inalco) Langages hors-contexte 10 / 29

Dérivations Plan 1. Origines 2. Définitions 3. Dérivations 4. Simplification Damien Nouvel (Inalco) Langages hors-contexte 11 / 29

Dérivations Dérivation Opérations qui génèrent le langage pour une grammaire Un mot α P (N Y T) se dérive en un mot β P (N Y T) si α se décompose en α 1 Aα 2 avec A P N β se décompose en α 1 γα 2 avec γ P (N Y T) A Ñ γ P R (c est une règle) Exemple : E + E E Ñ E + E E E α 1 = E+ α 2 = E A = E γ = E E E Ñ E E P R Damien Nouvel (Inalco) Langages hors-contexte 12 / 29

Dérivations Suite de dérivations Par transitivité Chaîne de dérivations α Ñ β Ñ γ = α ÝÑ γ Fermeture transitive, clôture (cf étoile de Kleene) Si γ P (N Y T) alors γ est une proto-phrase de G Ordre des dérivations Possibilité d analyses pour 1 + 2 + 3 Dérivation gauche : réécrit le non-terminal le plus à gauche E Ñ E + E Ñ 1 + E Ñ 1 + E + E Ñ 1 + 2 + E Ñ 1 + 2 + 3 Dérivation droite : réécrit le non-terminal le plus à droite E Ñ E + E Ñ E + 3 Ñ E + E + 3 Ñ E + 2 + 3 Ñ 1 + 2 + 3 ñ Dérivations différentes même résultat? ñ Pas toujours (par ex. associativité, priorité des opérateurs) Damien Nouvel (Inalco) Langages hors-contexte 13 / 29

Dérivations Langage généré Soit G une grammaire, alors le langage généré par G est L(G) = tm P T S ÝÑ mu ñ Sous-ensemble de T ñ Pas nécessairement fini Damien Nouvel (Inalco) Langages hors-contexte 14 / 29

Dérivations Arbre de dérivation Représentation graphique de la dérivation Racine : symbole initial = S Nœud : symbole non-terminal P N Feuille : symbole terminal P T Relation parent-enfants : dérivation (règle) ñ Structure de l analyse Dérivations (et analyses) de 1 + 2 3 E E E E E + E E + E 3 1 E E 1 2 2 3 dérivation gauche dérivation droite Damien Nouvel (Inalco) Langages hors-contexte 15 / 29

Plan 1. Origines 2. Définitions 3. Dérivations 4. Simplification Damien Nouvel (Inalco) Langages hors-contexte 16 / 29

Simplifier une grammaire ñ Supprimer les éléments inutiles de la grammaire Symboles improductifs A est improductif s il n y a pas de m P T tel que A ÝÑ m Symboles inaccessibles A est inaccessible s il n y a pas de α et β tels que S ÝÑ αaβ ϵ-productions Une ϵ-production est une dérivation telle que A ÝÑ ϵ Production simple A Ñ B est une production simple si A P N et B P N ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans ϵ-productions ni productions simples Damien Nouvel (Inalco) Langages hors-contexte 17 / 29

Élimination des symboles improductifs Calcul des symboles productifs Soit P 0 = H et i = 1 Soit P 1 = ta P N, Dα P T, A Ñ α P Ru Tant que P i P i 1 P i+1 = P i Y ta P N, Dα P (T Y P i ), A Ñ α P Ru i Ð i + 1 ñ Les symboles de NzP sont improductifs ñ Enlever ces symboles et les règles dans lesquels ils figurent Damien Nouvel (Inalco) Langages hors-contexte 18 / 29

Élimination des symboles inaccessibles Calcul des symboles accessibles Soit C 0 = H, C 1 = tsu et i = 1 Tant que C i C i 1 C i+1 = C i Y ta P N, Dα, β P (N Y T), X P C i, X Ñ αaβ P Ru ñ Les symboles de NzC sont inaccessibles ñ Enlever ces symboles et les règles dans lesquels ils figurent Damien Nouvel (Inalco) Langages hors-contexte 19 / 29

Élimination des ϵ-productions Calcul des symboles annulables Soit U 0 = H et i = 1 Soit U 1 = ta P N, A Ñ ϵ P Ru Tant que P i P i 1 U i+1 = U i Y ta P N, Dα P (U i ), A Ñ α P Ru i Ð i + 1 ñ Les symboles de U sont annulables Modification de la grammaire Remplacer chaque règle A Ñ αxβ où X P U par A Ñ αxβ αβ (avec combinaisons possibles de X dans les règles) Supprimer toutes les règles A Ñ ϵ (sauf pour S) Supprimer toutes les règles A Ñ A ñ Grammaire équivalente à ϵ près Damien Nouvel (Inalco) Langages hors-contexte 20 / 29

Équivalences et productions simples Productions simples, dérivations et classes d équivalences Production simple : toute règle A Ñ B avec B P N Soit la relation ě telle que A ě B si A ÝÑ B Soit la relation «telle que A «B si A ě B et B ě A Classes d équivalences Si A «B, tout ce qui est dérivé de A peut l être de B Relation réflexive, symétrique et transitive L ensemble des classes est une partition de N Modification de la grammaire On conserve les productions non-simples Pour chaque classe d équivalence ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivation A ÝÑ B Pour chaque B Ñ β, ajouter A Ñ β Damien Nouvel (Inalco) Langages hors-contexte 21 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ T U 2. U Ñ ayb V 3. V Ñ W 4. X Ñ W a 5. Y Ñ Z 6. Z Ñ c ϵ Étapes Symboles productifs : Symboles accessibles : ϵ-productions : Productions simples : Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ T U 2. U Ñ ayb V 3. V Ñ W 4. X Ñ W a 5. Y Ñ Z 6. Z Ñ c ϵ Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ϵ-productions : Productions simples : Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ U 2. U Ñ ayb 3. 4. X Ñ a 5. Y Ñ Z 6. Z Ñ c ϵ Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ϵ-productions : Productions simples : Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ U 2. U Ñ ayb 3. 4. X Ñ a 5. Y Ñ Z 6. Z Ñ c ϵ Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ts, U, Y, Zu ñ retirer X ϵ-productions : Productions simples : Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ U 2. U Ñ ayb 3. 4. 5. Y Ñ Z 6. Z Ñ c ϵ Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ts, U, Y, Zu ñ retirer X ϵ-productions : Productions simples : Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ U 2. U Ñ ayb 3. 4. 5. Y Ñ Z 6. Z Ñ c ϵ Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ts, U, Y, Zu ñ retirer X ϵ-productions : tz, Yu ñ modifier 6, 2 Productions simples : Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ U 2. U Ñ ayb ab 3. 4. 5. Y Ñ Z 6. Z Ñ c Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ts, U, Y, Zu ñ retirer X ϵ-productions : tz, Yu ñ modifier 6, 2 Productions simples : Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ U 2. U Ñ ayb ab 3. 4. 5. Y Ñ Z 6. Z Ñ c Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ts, U, Y, Zu ñ retirer X ϵ-productions : tz, Yu ñ modifier 6, 2 Productions simples : S Ñ U et Y Ñ Z ñ modifier 1, 2, 5, 6 Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exemple : simplification de grammaire Grammaire 1. S Ñ ayb ab 2. 3. 4. 5. Y Ñ c 6. Étapes Symboles productifs : tx, Z, Y, U, Su ñ retirer T, V et W Symboles accessibles : ts, U, Y, Zu ñ retirer X ϵ-productions : tz, Yu ñ modifier 6, 2 Productions simples : S Ñ U et Y Ñ Z ñ modifier 1, 2, 5, 6 Damien Nouvel (Inalco) Langages hors-contexte 22 / 29

Exercice : simplification de grammaire Réduire les grammaires suivantes G 1 S Ñ bsc btc a ϵ T Ñ U U Ñ buc T V Ñ U bc G 2 S Ñ UXT T Ñ b U Ñ av axtxb V Ñ cv awt W Ñ V X Ñ ab ϵ Y Ñ cz Z Ñ aa Damien Nouvel (Inalco) Langages hors-contexte 23 / 29

Formes normales Forme normale de Chomsky : toutes règles de la forme A Ñ BC avec A, B, C P N A Ñ a avec a P T Forme normale de Greibach : toutes règles de la forme A Ñ aα avec a P T, α P N ñ Pour tout langage hors-contexte il existe une grammaire en forme normale de Chomsky et une grammaire en forme normale de Greibach qui le génèrent Damien Nouvel (Inalco) Langages hors-contexte 24 / 29

Mise sous forme normale de Chomsky Étapes Pour chaque terminal a, crééer Un symbole Z a Une règle Z a Ñ a Pour chaque règle A Ñ α où α ą 1 Tout terminal a de α est remplacé par Z a Pour chaque règle A Ñ α où α ą 2 On décompose : α = A 1, A 2... A n On crée les non-terminaux Y 1, Y 2... Y n 2 On remplace A Ñ α par A Ñ A 1 Y 1 Y 1 Ñ A 2 Y 2... Y n 2 Ñ A n 1 A n Suppression des ϵ-productions et productions simples ñ Forme normale de Chomsky Damien Nouvel (Inalco) Langages hors-contexte 25 / 29

Récursivité Symbole récursif : A ÝÑ αaβ Si α = ϵ, A est récursif à gauche Si β = ϵ, A est récursif à droite Si ÝÑ ne comporte qu une dérivation : récursivité directe Si ÝÑ comporte plusieurs dérivations : récursivité indirecte ñ Une grammaire récursive comporte un symbole récursif Exemple : grammaire indirectement récursive à gauche A Ñ B B Ñ CD C Ñ AE Suppression de la récursivité directe Remplacer toute règle A Ñ Aa b A Ñ ba 1 A 1 Ñ aa 1 ϵ Damien Nouvel (Inalco) Langages hors-contexte 26 / 29

Ambiguïté et équivalence Ambiguïté de grammaires Grammaire : un mot est généré par deux arbres de dérivation ñ Exemple : rattachement prépositionnel S Ñ GN V PRP GN GN S Ñ GN V GN GN Ñ PRP GN GN ñ Il discute avec un collègue de philosophie ñ Il discute avec l ami de sa sœur Langage : toutes les grammaires qui le génère sont ambigües Équivalence de grammaires Génèrent le même langage Donnent les même arbres d analyse (équivalence forte) Damien Nouvel (Inalco) Langages hors-contexte 27 / 29

Mettre sous forme normale de Chomsky S Ñ AbA A Ñ AaA ca Soit l ensemble de symboles non-terminaux : N = tgn, GV, DET, PREP, NOM, ADJ, ADVu Définissez les règles d une grammaire qui génèrent des phrases Ajoutez des éléments terminaux et leurs règles Donnez les arbres de dérivation pour les phrases suivantes le chat mange le chat mange la souris le chat regarde le bout de fromage Donnez quelques phrases générées par la grammaire Quel problème rencontre-t-on pour les genres (m/f)? Modifiez la grammaire pour générer des phrases interrogatives Damien Nouvel (Inalco) Langages hors-contexte 28 / 29 Exercices

TP : SWI-Prolog :- use_rendering(svgtree, [list(false)]). % Règles non terminales s(s(x,y)) --> gn(x), gv(y). gn(x) --> np(x). gn(gn(x,y)) --> det(x), nc(y). gv(gv(x,y)) --> v(x), gn(y). % Règles terminales np(np(jean)) --> [jean]. det(det(de)) --> [de]. nc(nc(philosophie)) --> [philosophie]. nc(nc(politique)) --> [politique]. v(v(discute)) --> [discute]. % Requête phrase(s(tree), [jean, discute, de, politique]). Damien Nouvel (Inalco) Langages hors-contexte 29 / 29