Vous êtes sur la page 1sur 6

Arbre d’analyse pour

une grammaire

Réalisé par : Groupe 5

EST ESSAOUIRA

Sommaire

1-introduction

2-Définitions

3- Arbres et règles de grammaire

4- Processus d’analyse

5- Types d’analyse

6- Fonctionnement de l'analyseur

7- Conclusion
1-introduction
Lorsque on désire analyser une phrase a l’aide des règles explicites, il est alors
nécessaire substituer a l’analyse intuitive d’un programme d’analyse explicite, c'est-à-dire un
algorithme dont une des taches serait de donner toutes les analyses de la phrase analysée et
ensuite choisir l’analyse qui soit compatible avec le contexte.

La plupart des grammaires utilisées jusqu’à maintenant dans des programmes d’analyse
syntaxique sur l’ordinateur sont basée peu ou prou sur la grammaire en constituants
immédiats développée aux Etats-Unis dans les années 40 par l’école de linguistique
distributionnelle. les analyses produites par ces programmes laissent à désirer, en particulier
en ce qui concerne la justesse des analyses. en effet, ce type de grammaire présente un
inconvénient majeur : la difficulté de l’incorporation dans la grammaire des phénomènes
grammaticaux discontinus, représentés, par exemple par l’accord grammatical entre sujet et
verbe.

2-Définition
2-1 Grammaire
Une grammaire est un ensemble de règles permettant de dire si une phrase, c'est-à-dire une
suite de mots ou lexèmes (cf. l’analyse lexicale), est correcte ou non. Les règles qui nous
intéressent en informatique sont celles qui donnent une description générative du langage, en
indiquant comment précisément construire de telles phrases.

Par exemple une définition générative est la suivante :

Une phrase se compose d’une proposition sujet, d’un verbe et d’une proposition complément.
Alors qu’une définition de la forme :

La subordonnée relative complète un nom ou un groupe nominal appartenant à la proposition


principale
n’est pas générative : elle ne nous dit pas comment effectivement construire une subordonnée
relative.

Une grammaire est donnée formellement sous la forme d’un quadruplet : G=<V, ∑, R, S> où :

2
• V est un vocabulaire (qu’on appelle aussi souvent alphabet), c’est à dire un
ensemble fini de symboles.
• ∑ ⊆ V est l’ensemble des symboles terminaux, c’est à dire les mots du langage, et
V–∑ est l’ensemble des symboles non-terminaux, c'est-à-dire les catégories
grammaticales.
• R ⊆ (V+ × V*) est un ensemble fini de règles de réécritures.
• S ∈ V–∑ est le symbole de départ (Phrase dans l’exemple du chat) .

Notation : on fait commencer les catégories grammaticales d’une majuscule, les mots
(terminaux) sont écrits en minuscules, les lettre grecques α β δ etc. représentent des suites de
symboles (terminaux ou non-terminaux). Le mot vide s’écrit ε (comme pour les expressions
régulières).

2-2 Arbre d’analyse

L'analyse d’un arbre admet en entrée un flot d'unités lexicales constitué de couples (code,
indice) ou de singletons (code). Ce sont des chaînes w composées d'éléments du vocabulaire
terminal w appartient a VT.
Ces chaînes vont être analysées à l'aide d'une grammaire G = (VN, VT, P, S).
Une chaîne w est dite analysée, si on a trouvé pour w un arbre de dérivation (éventuellement
tous). Le résultat de l'analyse syntaxique est un arbre syntaxique (appelé aussi arbre de
dérivation).
Soit G = (VN , VT , P, S) et w une chaîne dérivable à partir de S. On suppose que les règles de
Production de P sont numérotées de 1 à p. Nous allons donner deux définitions et les illustrer
sur un même exemple.

3- Arbres et règles de grammaire


La structure d’une phrase est généralement récursive : par exemple, une phrase contient un groupe
nominal et un groupe verbal, ce dernier étant composé lui-même d’un groupe nominal. De plus, un
groupe nominal peut lui-même contenir des groupes nominaux sous la forme de subordonnées
relatives.

L’expression de la structure d’une phrase s’exprime sous la forme d’un arbre, que l’on appelle arbre
syntaxique (ou arbre de dérivation) d’une phrase. Par exemple, la phrase :

le chat qui est sur la commode regarde la souris


peut être représentée par l’arbre suivant :

2
P h ra s e

G N G V

A r tic le N om S u b o rd . V e rb e G N

Le chat re g a rd e A r tic le N om

P ro n . G N la s o u r is
r e la t if

G N
qui V e rb e
p ré p .

est P ré p . G N

sur A r tic le Nom

la com m ode

Les feuilles de l’arbre correspondent aux mots de la phrase, et les nœuds non-terminaux aux catégories
grammaticales.

Les règles de grammaire peuvent être données sous la forme de règles de réécritures (qu’on
appelle aussi parfois productions) qui indiquent comment une catégorie grammaticale peut être
transformée en une suite de catégories grammaticales ou de mots du vocabulaire.

4- Processus d’analyse

Il existe essentiellement deux types de processus :


1. l’analyse descendante, dans laquelle on construit l’arbre en descendant de la racine
vers les feuilles. Cette analyse correspond à un parcours descendant gauche (parce qu’on lit de
gauche à droite). Il s’agit de deviner à chaque étape quelle est la règle qui sert à engendrer le
mot que l’on lit. Les grammaires GEA et GEA1 ne peuvent pas être appliquées, car on ne sait
pas à chaque moment quelle règle appliquer. Cette analyse effectue un parcours préfix de
l’arbre.

2
2. l’analyse ascendante construit l’arbre syntaxique en montant des feuilles vers la racine.
Elle correspond au parcours inverse (puisqu’on monte) du parcours descendant droit. Dans ce
type d’analyse, on essaye d’appliquer le membre droit d’une règle et à le remplacer par le
non-terminal gauche correspondant. L’opération est donc inverse de celle la dérivation. La
principale difficulté consiste à trouver le bon membre droit à appliquer. Elle est à la fois plus
puissante mais aussi plus complexe à mettre en œuvre que l’analyse descendante (sans retour
arrière). Cette analyse effectue un parcours post fixé de l’arbre.

5- Types d’analyse

5.1 Analyse gauche d'un syntagme : (analyse de haut en bas) C'est une séquence de
dérivations gauches à partir de S.

La séquence (1, 1, 2, 4, 4) suffit pour déterminer l'arbre de dérivation (arbre syntaxique).

5.2 Analyse droite d'un syntagme : (analyse de bas en haut)


C'est une séquence de numéros de production telle que la séquence inverse soit une dérivation
droite de w.
La séquence 2, 4, 1, 4, 1 suffit pour déterminer l'arbre de dérivation.

6- Fonctionnement de l'analyseur
Il s'agit d'appliquer ce que nous avons vu à des analyseurs fonctionnant de manière tabulaire,
c'est-à-dire sans utiliser la récursivité du langage d'implémentation de l'analyseur syntaxique.

Un analyseur prédictif se compose d'une pile (pour contenir les symboles en cours) et d'une
table qui contient les relations entre terminaux courants, symboles terminaux en entrée et
règles à appliquer.

2
T a b le
d 'a n a l y s e
(a u t o m a t e )

m ots lu s A n a ly seu r
sy n ta x iq u e

P ile

On suppose que l'analyseur lexical retourne le symbole '$' lorsque tous les caractères ont été
lus (c'est le symbole de fin de fichier "réifié" comme un mot).
Mettre le symbole de démarrage sur la pile (appelons le '$' pour simplifier).

Tant que la pile n'est pas vide faire {


soit X le sommet de la pile et a la valeur du symbole d'entrée.
Si X est un symbole terminal (ou le symbole de démarrage)
si X == a alors pop X et readToken()
sinon erreur
sinon // X est un symbole non-terminal
si TableAnalyse[X,a]== X → Y1 ... Yk alors
pop X
push Yk, Yk-1, ... Y1 // Y1 doit être sur le dessus
sinon erreur
}

7- Conclusion

Un programme qui utilise une grammaire en chaine se révèle être un outil puissant pour
l’analyse des phrases d’une langue naturelle. En raison de la structure de cette grammaire,
l’insertion de contraintes de natures diverses entre éléments des chaînes et non seulement
commode mais aussi pratique.