Langages. Grammaires formelles. Comment définir un langage? Objectifs (historiques)

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Théorie des Langages

Cours d algorithmique pour la classe de 2nde

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

Les structures de données. Rajae El Ouazzani

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

Algorithmique et Programmation, IMA

Initiation à la programmation en Python

ALGORITHMIQUE ET PROGRAMMATION En C

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Initiation à l algorithmique

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Rappels sur les suites - Algorithme

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Évaluation et implémentation des langages

Préparation à l examen EFA en Macro


Initiation à LabView : Les exemples d applications :

Représentation d un entier en base b

Fonctions de deux variables. Mai 2011

Chapitre 1 I:\ Soyez courageux!

Compression Compression par dictionnaires

Organigramme / Algorigramme Dossier élève 1 SI

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Algorithmique et programmation : les bases (VBA) Corrigé

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)

Objets et Programmation. origine des langages orientés-objet

Nom de l application

STAGE IREM 0- Premiers pas en Python

Business Process Modeling (BPM)

Cégep de Saint Laurent Direction des communications et Direction des ressources technologiques. Projet WebCSL : Guide de rédaction web

Programmer en JAVA. par Tama

Machines virtuelles Cours 1 : Introduction

Géométrie dans l espace Produit scalaire et équations

Utilisation des tableaux sémantiques dans les logiques de description

DOCM Solutions officielles = n 2 10.

Initiation à la Programmation en Logique avec SISCtus Prolog

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

Corrigé des TD 1 à 5

Qualité du logiciel: Méthodes de test

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Introduction à MATLAB R

Séquence 3. Expressions algébriques Équations et inéquations. Sommaire

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

Cours 1 : La compilation

Bases de données Cours 5 : Base de données déductives

Cours d Informatique

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Présentation du langage et premières fonctions

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

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

données en connaissance et en actions?

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

Algorithmes récursifs

Bases de programmation. Cours 5. Structurer les données

Grammaires d unification

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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

TP 1. Prise en main du langage Python

Comment automatiser la création d index multiples avec Word Paul-Henri Dumas - URFIST

Calcul différentiel sur R n Première partie

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

Algorithme. Table des matières

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

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

LE PRODUIT SCALAIRE ( En première S )

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

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

Java Licence Professionnelle CISII,

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

Conception de circuits numériques et architecture des ordinateurs

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

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Cours d Algorithmique et de Langage C v 3.0

OCL - Object Constraint Language

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Limites finies en un point

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Titres de créances NégOciables Refonte Informatique et organisationnelle

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Programmation Internet Cours 4

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

as Architecture des Systèmes d Information

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Quatrième partie IV. Test. Test 15 février / 71

Cours de Master Recherche

Transcription:

Grammaires formelles Définitions - grammaires hors contexte Dérivation Arbres syntaxiques et ambiguïtés Forme BNF Automates à pile Eléments d analyse syntaxique Analyse descendante Grammaires générales Langages Un langage est un ensemble fini ou infini de chaînes de symboles tirés d un alphabet S. Exemple: S = {a, b, X,!} L1 = {a, bx, bxxa,!!, } L2 = toutes les chaînes qui commencent par a L3 = toutes les chaînes qui ont autant de X que de b L4 = les chaînes formées d exactement 3 symboles G. Falquet, CUI / Uni Genève 1 de 56 G. Falquet, CUI / Uni Genève 2 de 56 Comment définir un langage? Expressions régulières ne marche pas toujours (langages non réguliers) Idée de Backus, Naur et Chomsky utiliser un système formel axiomes, règles de dérivation, théorèmes => chaînes grammaticales distinguer deux catégories de symboles: variables («temporaires») et terminaux Objectifs (historiques) Backus et Naur: définir formellement la syntaxe du langage de programmation Algol 58/60 définir tous les langages de programmation Chomsky: définir des grammaires génératives pour étudier les langues naturelles règles pour générer toutes les phrases correctes G. Falquet, CUI / Uni Genève 3 de 56 G. Falquet, CUI / Uni Genève 4 de 56

Grammaires hors contexte Une GHC est formée d un ensemble V de symboles non terminaux (ou variables) d une ensemble T de symboles terminaux d une ensemble R de règles de production de la forme X w où X V et w (V T)* (chaîne de symboles de V et T) Dérivation (production) Application d une règle sur une chaîne la règle : X w appliquée à la chaîne : p X q produit : p w q Exemple A a C d C sur c A b donne c a C d C b d un symbole initial S V G. Falquet, CUI / Uni Genève 5 de 56 G. Falquet, CUI / Uni Genève 6 de 56 Choix de la dérivation P : X w u : p X q X r On peut appliquer P sur n importe quelle occurrence de X Plusieurs dérivations possibles. Exemple C b b d sur b C a C 1 er choix : b b b d a C 2 e choix : b C a b b d Séquences de dérivation Application successive de différentes règles à partir de u : u P1 u 1 u 1 P2 u 2 u k-1 Pk-1 u k u k s On note u * s. (avec la règle C b b d) b C a C b b b d a C b b b d a b b d G. Falquet, CUI / Uni Genève 7 de 56 G. Falquet, CUI / Uni Genève 8 de 56

Existence d une dérivation Dérivations multiples signifie: u * s il existe des chaînes u 1, u 2,., u k telles que u u 1 et u 1 u 2 et et u k-1 u k et u k s Dans les systèmes formels : preuve du théorème s à partir de l axiome u. Soit les règles 1. S XY; 2. X ay; 3. X a ; 4. Y c On peut appliquer les dérivations dans des ordres différents et produire la même chaîne terminale: d1: S 1 XY 2 ayy 4 acy 4 acc d2: S 1 XY 4 Xc 2 ayc 4 acc G. Falquet, CUI / Uni Genève 9 de 56 G. Falquet, CUI / Uni Genève 10 de 56 Arbre de dérivation / syntaxique S abstraire de l ordre d application des règles. Trouver les dérivations fondamentalement différentes On représente une dérivation X a 1 a 2 a k par La racine de l arbre est le symbole initial Les feuilles sont des symboles terminaux X a1 a2... ak La chaîne produite correspond à lire les feuilles de gauche à droite Exemple (1) (1) S X + X ; (2) S X ; (3) X Y * Y ; (4) X Y ; (5) Y a ; (6) Y b ; (7) Y 0 ; (8) Y 1 ; S (2) X (3) Y * Y (8) (5) 1 a Dérivation de 1*a G. Falquet, CUI / Uni Genève 11 de 56 G. Falquet, CUI / Uni Genève 12 de 56

Exemple (2) (1) S X + X ; (2) S X ; (3) X Y * Y ; (4) X Y ; (5) Y a ; (6) Y b ; (7) Y 0 ; (8) Y 1 ; (4) (5) Y a (1) S X + X (3) Y * Y (7) 0 b Dérivation de a+0*b (6) Arbre et dérivations (4) (5) Y a Représente (entre autres) les dérivations : (1) S X + S 1 X+X 4 Y+X 3 Y+Y*Y 5 a+y*y 7 a+0*y 6 a+0*b S 1 X+X 3 X+Y*Y 7 X+0*Y 4 Y+0*Y 6 Y+0*b 5 a+0*b X (3) Y * Y (7) 0 b (6) G. Falquet, CUI / Uni Genève 13 de 56 G. Falquet, CUI / Uni Genève 14 de 56 Ambiguïtés Une grammaire est ambiguë s il existe plusieurs arbres pour dériver la même chaîne de symboles: S S o S; S a; S b; Il y a deux arbres pour dériver la chaîne a o b o a : S S o S a S o S b a S S o S S o S a a b Signification de l ambiguïté Chaîne ambiguë => deux arbres syntaxiques => deux manière d analyser cette chaîne Ex. informel en français: «La belle ferme le voile» a) Proposition Sujet Verbe Complément -->... (La belle) (ferme) (le voile) b) Proposition Sujet Complément Verbe -->... (La belle ferme) (le) (voile) G. Falquet, CUI / Uni Genève 15 de 56 G. Falquet, CUI / Uni Genève 16 de 56

Suppression d ambiguïté Tester l ambiguité P.ex. Introduire un nouveau symbole non-terminal T S T o S; S T; T a; T b; Mauvaise nouvelle Il n y a pas d algorithme pour tester si une grammaire hors contexte est ambiguë ou non. Analyse de a o b o a (seul arbre possible) S T o S a T o S b T a G. Falquet, CUI / Uni Genève 17 de 56 G. Falquet, CUI / Uni Genève 18 de 56 Forme de Backus et Naur (BNF) La forme BNF simplifie l écriture des grammaire en regroupant plusieurs règles en une seule règle BNF. BNF de base les symboles terminaux sont écrits entre " et " la de dérivation est remplacée par ::= le symbole sert à exprimer des alternatives T ::= "a" B "c" remplace T a B c T ::= w 1 w 2 w k remplace Exemple (1) S X + X ; (2) S X ; (3) X Y * Y ; (4) X Y ; (5) Y a ; (6) Y b ; (7) Y 0 ; (8) Y 1 ; En BNF S ::= X "+" X X X ::= Y "*" Y Y Y ::= "a" "b" "0" "1" T w 1, T w 2,, T w k G. Falquet, CUI / Uni Genève 19 de 56 G. Falquet, CUI / Uni Genève 20 de 56

BNF: Extensions Répétitions 0, 1 ou plusieurs fois T ::= { h } signifie: T ε; T ht ; BNF: Extensions (2) Inclusion de sous-expressions T ::= w1 expression BNF w2 signifie: Option (0 ou 1 fois) T ::= [ h ] signifie: T ε; T h ; Répétitions 1 ou plusieurs fois T ::= ( h ) + signifie: T h; T ht ; T ::= w1 Tb w2 Tb ::= expression BNF. p.ex. A ::= "top" { "tic" "tac" ["oups"] } ({ "dring" } "toc" "boum" ) top tic tac tic tac tic tac boum top tic tac tic tac tic tac tic tac dring dring dring top tic tac tic tac oups tic tac tic tac oups tic tac G. Falquet, CUI / Uni Genève 21 de 56 G. Falquet, CUI / Uni Genève 22 de 56 Ex. BNF d expressions arithmétiques Expression ::= Terme { ("+" " ") Terme } Terme ::= Facteur { ("*" "/") Facteur } Facteur ::= Nombre Variable "(" Expression ")" Nombre ::= [" "] Chiffre { Chiffre } Chiffre ::= "0" "1" "9" Variable ::= Lettre { Lettre Chiffre "_" "$" } Lettre ::= "a" "b" "Z" Exemple: a*(1-c) Expression Terme Facteur * Facteur Variable ( Expression ) Lettre Terme Terme a Facteur Facteur Nombre Variable Chiffre Lettre 1 c G. Falquet, CUI / Uni Genève 23 de 56 G. Falquet, CUI / Uni Genève 24 de 56

Exemple : BNF d un langage algorithmique BNF de la BNF Instruction ::= Affectation Condition Itération "{" {Instruction } "}" Affectation ::= Variable "=" Expression ";" Condition ::= "if" "(" ExpressionLogique ")" Instruction ["else" Instruction] Itération ::= "while" "(" ExpressionLogique ")" Instruction ExpressionLogique ::= Comparaison ExpressionLogique ("&&" " ") ExpressionLogique Comparaison ::= Expression ("==" ">" "<" ) Expression syntax ::= { rule } rule ::= identifier "::=" expression expression ::= term { " " term } term ::= factor { factor } factor ::= identifier quoted_symbol "(" expression ")" "[" expression "]" "{" expression "}" identifier ::= letter { letter digit } quoted_symbol ::= """ { any_character } """ G. Falquet, CUI / Uni Genève 25 de 56 G. Falquet, CUI / Uni Genève 26 de 56 Problème: Analyse syntaxique étant donné une chaîne de symboles terminaux, cette chaîne appartient-elle au langage engendré par la grammaire G? ou bien reconstruire l arbre syntaxique qui produit une chaîne donnée. On cherche à automatiser cette analyse, c est-à-dire à définir une procédure d analyse pour chaque langage. Domaine de l informatique: parsing, analyseurs syntaxiques, compilateurs Automates à pile Automates avec une mémoire Capables de reconnaître les langages hors contexte plus forts que les automates finis Principe on dispose d une mémoire à empilement (pile) à chaque étape le symbole au sommet de la pile peut être lu et enlevé un nouveau symbole peut être empilé G. Falquet, CUI / Uni Genève 27 de 56 G. Falquet, CUI / Uni Genève 28 de 56

Définition Un automate à pile est formé de Transitions spéciales q i a u v q j un ensemble fini d états Q un état initial q 1 Q, un ensemble d état finals F un alphabet d entrée A un alphabet de pile P un ensemble de transitions si a = 0 : pas de lecture de symbole d entrée action indépendante du symbole courant si u = 0 : le sommet de la pile n est pas enlevé q i a u v q j «Dans l état q i si on lit le symbole a et que le symbole u est au sommet de la pile, enlève u de la pile, empile v et passe à l état q j» si v = 0 : n empile rien G. Falquet, CUI / Uni Genève 29 de 56 G. Falquet, CUI / Uni Genève 30 de 56 Acceptation Configuration d un AP : (no. symb. entrée, état, pile) Exemple 1 Alpha. = {a, b}, Alpha. Pile = {u}, Q = {q1, q2}, F {q2} Transitions si D = (k, q i, uα) et le k e symbole d entrée est b, une transition q i a u v q j fait passer à D = (k+1, q j, vα) si a = b q1 a 0 u q1 q1 b u 0 q2 q2 b u 0 q2 D = (k, q j, vα) si a = 0 (0α = α) Un chaîne est acceptée si on atteint un état final et que la pile est vide. L = a n b n G. Falquet, CUI / Uni Genève 31 de 56 G. Falquet, CUI / Uni Genève 32 de 56

Exemple 2 Alpha. = {a, b, c}, Alpha. pile = {A, B}, Q = {q1, q2}, F {q2} Transitions q1 a 0 A q1 q1 b 0 B q1 q1 c 0 0 q2 q2 a A 0 q2 q2 b B 0 q2 Exemple 3 - non déterministe Alpha. = {a, b}, Alpha. pile = {A, B}, Q = {q1, q2}, F {q2} Transitions q1 a 0 A q1 q1 b 0 B q1 q1 a A 0 q2 q1 b B 0 q2 q2 a A 0 q2 q2 b B 0 q2 L = wcw R L = ww R G. Falquet, CUI / Uni Genève 33 de 56 G. Falquet, CUI / Uni Genève 34 de 56 Langages à parenthèses PAR 3 Terminaux : { a, (, ), [, ], {, } } Non terminal, initial : S Règles S a S ( S ) S [ S ] S { S } S S S S 0 (chaîne vide) Langages à parenthèses PAR n Terminaux : { a, ( 1, ) 1,, ( n, ) n } Non terminal, initial : S Règles S a S ( i S ) i i = 1, 2,, n S S S S 0 (chaîne vide) G. Falquet, CUI / Uni Genève 35 de 56 G. Falquet, CUI / Uni Genève 36 de 56

Automate pour PAR n Alpha. = {a, ( 1, ) 1,, ( n, ) n }, Alpha. pile = {J 1,, J n }, Q = {q1}, F {q1} Transitions q1 a 0 0 q1 q1 ( i 0 J i q1 q1 ) i J i 0 q1 Analyse de tout langage hors contexte Forme normale de Chomsky Une grammaire est en forme normale de Chomsky si toutes les productions sont de la forme Théorème X Y Z ou X a Il y a un algorithme qui transforme toute ghc G (positive) en une grammaire G en fn Chomsky telle que L(G ) = L(G). G. Falquet, CUI / Uni Genève 37 de 56 G. Falquet, CUI / Uni Genève 38 de 56 (suite) Séparateur G s d une grammaire en fn Chomsky Automate d analyse L(G s ) = R PAR n (T) G s est obtenue en remplaçant chaque production Théorème. X i Y i Z i par X i ( i Y i ) i Z i G une grammaire en forme normale de Chomsky, T les symboles terminaux Il existe un lanage régulier R tel que On peut construire un automate fini pour R, un automate à pile pour PAR n (T) un automate à pile pour l intersection des deux. Donc, tout langage hors contexte est analysable par un automate à pile. L(G s ) = R PAR n (T) G. Falquet, CUI / Uni Genève 39 de 56 G. Falquet, CUI / Uni Genève 40 de 56

Grammaires et SI Syntaxe des langages de programmation, de bases de données de modélisation (UML, ) de marquage de documents (HTML, LaTeX, etc.) de saisie d information (dates, nombres, etc.) Définition de structures structures de documents structures de données Documents typés Exemple: XML Marquer sémantiquement le contenu des documents distinguer un prix, une longueur, une adresse, un nom de famille, un prénom, dans un texte Fournir des schémas de documents adaptés au domaine d application liste de prix, formulaire d inscription, livre, article, mode d emploi, Séparer le contenu de la présentation spécifier la présentation indépendamment du document G. Falquet, CUI / Uni Genève 41 de 56 G. Falquet, CUI / Uni Genève 42 de 56 Marquage d un document Ajouter des balises dans le texte, indiquer la nature du texte. <chapitre> <titre>introduction à la signification des choses </titre> <auteur>h. De Paris</auteur> <paragraphe>longtemps on a considéré </paragraphe> <paragraphe> </paragraphe> <référence><auteur>w. Floyd.</auteur> <titre> "Tout est simple"</titre> </référence> </chapitre> Permet des traitements plus fins Cibler les recherches ou l indexation chercher le mot informatique dans un titre de chapitre / un titre de référence. Créer des documents dérivés une liste des auteurs référencés, une table des matières Distinguer les différents rôles d un mot Paris en tant que nom d auteur ou mot d un titre Restructurer les documents Réutiliser/intégrer les documents G. Falquet, CUI / Uni Genève 43 de 56 G. Falquet, CUI / Uni Genève 44 de 56

Définition de types de documents Le texte entre <balise> et </balise> est un élément Son type est donné par le nom de la balise. Un document est composé d éléments imbriqués quels sont les types d éléments admis dans ce document? p.ex. chapitre, paragraphe, auteur, dans un livre de quoi est composé chaque élément? p.ex. un chapitre est fait d un auteur, d un titre, de paragraphes et de références Grammaire d un document Les types d éléments sont des symboles non terminaux Une expression de type BNF spécifie la «composition» de chaque type d élément <!ELEMENT adresse (numéro, rue, ville)> <!ELEMENT numéro (#PCDATA)> <!-- des caractères --> <!ELEMENT rue (#PCDATA)> <!ELEMENT ville (#PCDATA)> Document <adresse> <numéro>25</numéro><rue>lausanne</rue> <ville>genève</ville> </adresse> G. Falquet, CUI / Uni Genève 45 de 56 G. Falquet, CUI / Uni Genève 46 de 56 Répétitions et options <!ELEMENT chapitre (titre, auteur, paragraphe*)> Un chapitre = un titre, suivi d un auteur, suivi de 0, 1 ou plusieurs paragraphes. <!ELEMENT chapitre (titre, auteur, paragraphe+)> Un chapitre doit contenir au moins un paragraphe. <!ELEMENT chapitre (titre, auteur?, paragraphe+)> Un chapitre peut ne pas avoir d auteur. Structure Alternatives <!ELEMENT les-amis (ami*)> <!ELEMENT ami (nom, (poste mél fax))> <!ELEMENT nom (#PCDATA)> <!ELEMENT poste (#PCDATA)> ]> Document <les-amis> <ami> <nom> Jeanne </nom> <poste>genève </poste> </ami> <ami><nom>louis</nom><mél>lou@ici.net</mél> </ami> </les-amis> G. Falquet, CUI / Uni Genève 47 de 56 G. Falquet, CUI / Uni Genève 48 de 56

Documents auto-décrits Représentation de données <?xml version="1.0"?> <!-- la structure --> <!DOCTYPE les-amis [ ]> <!ELEMENT les-amis > <!-- le contenu --> <les-amis> </les-amis> Cette technique est très générale Elle permet de représenter toutes sortes de structures de données Documents de tous types (livres, articles, formulaires, ) Mais aussi des données structurées en tableau, relation, graphes, listes, => utilisation pour l échange de données à l intérieur d un système d information ou entre systèmes d information. G. Falquet, CUI / Uni Genève 49 de 56 G. Falquet, CUI / Uni Genève 50 de 56 <!DOCTYPE feuille [ Exemple: feuille de calcul <!ELEMENT feuille (ligne*)> <!ELEMENT ligne (cellule*)> <!ELEMENT cellule (#PCDATA)> ]> <feuille> <ligne> <cellule>date</cellule> <cellule>prix</cellule> </ligne> <ligne>... <ligne> </feuille> Retour à la théorie: Grammaires générales Certains langages ne peuvent être exprimés avec des grammaires hors contexte, p.ex. L = {a n b n c n } Une grammaire générale est formée de symboles terminaux (T) et non terminaux (V), d un symbole initial d une ensemble R de règles de production de la forme w1 w2 où w1 et w2 sont des chaînes de symboles tirés de V et T G. Falquet, CUI / Uni Genève 51 de 56 G. Falquet, CUI / Uni Genève 52 de 56

Dérivation Hiérarchie de complexité des langages règle P = α β u = pαq application de P sur α dans u : u P pβq Complexe signifie qu il est difficile de répondre à la question «la chaîne w appartient-elle au langage?» c.f. w est elle un théorème du système formel? Si α apparaît plusieurs fois dans la chaîne u, on peut appliquer P sur n importe quelle occurrence de α, ce qui donne plusieurs dérivations différentes. La complexité du langage dépend de la forme des règles G. Falquet, CUI / Uni Genève 53 de 56 G. Falquet, CUI / Uni Genève 54 de 56 Hiérarchie 1-2 1. Le plus compliqué: règles générales (α, β chaînes quelconques de terminaux et non terminaux) règles de la forme : α β langage récursivement énumérable on ne peut même pas automatiser l analyse 2. règles de la forme : α β mais avec longueur de α longueur de β langage dépendant du contexte Hiérarchie 3-4 3. règles de la forme A β (A: symbole non terminal) langage hors contexte analysable par un automate à pile 4.règles de la forme a. A a ou A ab ou de la forme A a ou A Ba (a terminal) langage régulier (linéaire) analysable avec un automate à états (sans mémoire) G. Falquet, CUI / Uni Genève 55 de 56 G. Falquet, CUI / Uni Genève 56 de 56