Cours COMPIL Langages et grammaires alg´ebriques: r´esum´e
Cette grammaire est constitu´ee de 7 productions. ”phrase →sujet verbe complement” est une pro-
duction qui indique qu’une phrase est un sujet suivi d’un verbe suivi d’un compl´ement. ”verbe →JOUE
|TRAVAILLE” est en fait 2 productions de mˆeme membre gauche, qui indiquent qu’un verbe est soit
JOUE, soit TRAVAILLE (le symbole |joue donc le rˆole de choix, comme dans les expressions r´eguli`eres).
L’axiome (le point de d´epart) de cette grammaire est phrase. Le vocabulaire terminal (l’ensemble
des terminaux) est constitu´e des symboles {JE, IL, JOUE, TRAVAILLE, AVECLECHAT, SURLORDI-
NATEUR}, c’est `a dire que les mots engendr´es par cette grammaire seront des suites de ces symboles.
Le vocabulaire non-terminal (l’ensemble des non-terminaux) est constitu´e des symboles {phrase, sujet,
verbe, complement}.
3.2 Langage engendr´e, d´erivations
Pour engendrer un mot `a partir d’une grammaire alg´ebrique, on part de l’axiome, et on proc`ede par
r´ecritures successives jusqu’`a avoir compl`etement ´elimin´e les non-terminaux (comme leur nom l’indique,
on a termin´e quand on se retrouve avec uniquement des terminaux). On dit qu’on effectue des d´erivations.
Exemple :
phrase ⇒sujet verbe complement ⇒sujet TRAVAILLE complement ⇒IL TRAVAILLE complement
⇒IL TRAVAILLE AVECLECHAT
est une suite de d´erivations directes qui part de l’axiome, et permet d’engendrer le mot IL TRAVAILLE
AVECLE CHAT.
Effectuer une d´erivation directe consiste `a choisir un non-terminal et une r`egle dans laquelle ce non-
terminal apparaˆıt en partie gauche. Ensuite on remplace le non-terminal par la partie droite de la r`egle.
Comme on choisit le non-terminal et la production, plusieurs choix sont possibles. On peut ainsi d´eriver
le mˆeme mot avec la suite de d´erivations :
phrase ⇒sujet verbe complement ⇒IL verbe complement ⇒IL TRAVAILLE complement ⇒IL
TRAVAILLE AVECLECHAT
On peut aussi d´eriver les mots JE TRAVAILLE AVECLECHAT, JE TRAVAILLE SURLORDINATEUR
et IL TRAVAILLE SURLORDINATEUR.
Sans surprise, le langage engendr´e par une grammaire est l’ensemble des mots compos´es des terminaux
qu’on peut d´eriver `a partir de l’axiome.
3.3 Langages alg´ebriques, comparaison avec les r´eguliers
Les langages engendr´es par les grammaires alg´ebriques sont appel´es langages alg´ebriques.
Les langages r´eguliers sont inclus dans les langages alg´ebriques. Donc tout langage r´egulier est aussi
alg´ebrique, mais l’inverse n’est pas vrai (cf {anbn|n≥0}qui est alg´ebrique mais pas r´egulier). En
cons´equence, tout langage qu’on peut d´ecrire par une expression r´eguli`ere peut aussi ˆetre d´ecrit par une
grammaire alg´ebrique.
3.4 Outils pour l’analyse syntaxique
On parle souvent de ”parseur” au lieu d’analyseur syntaxique. Reconnaˆıtre un texte se dit alors
”parser”.
Un g´en´erateur d’analyseur syntaxique est un logiciel qui prend en entr´ee une grammaire alg´ebrique et
qui produit en sortie un module d’analyse syntaxique (un autre logiciel) correspondant `a cette grammaire.
Nous verrons deux g´en´erateurs en TP : Cup et antLR, qui utilisent des techniques de parsing diff´erentes.
4 Arbres syntaxiques
La figure 1 montre un arbre syntaxique pour le mot : IL TRAVAILLE AVECLECHAT.
On constate que les 2 d´erivations donn´ees plus haut pour ce mot permettent de construire cet arbre.
Dans le cas de cette grammaire, ce mot admet un seul arbre syntaxique, qui fixe son interpr´etation.
2012 - 2013 2 Licence info S5