Documente Academic
Documente Profesional
Documente Cultură
Les grammaires
Wafa GABSI MASMOUDI
gabsi.wafa@gmail.com
2019-2020
Plan
1 Introduction
2 Définitions et exemples
3 Dérivation
4 Arbre de dérivation
1 Introduction
Motivation
Exemples
Principe
2 Définitions et exemples
3 Dérivation
4 Arbre de dérivation
Motivation
Tout langage possède des règles qui indiquent la
structure syntaxique d’un langage bien formé.
Les langages réguliers s’expriment à l’aide des
expressions régulières.
La plupart des langages ne peuvent pas s’exprimer par
une expression régulière.
Exp: systèmes des parenthèses bien formées.
Besoin d’un outil plus puissant ⇒ Les grammaires.
Les grammaires sont des outils pour décrire des
langages, inspirés des grammaires utilisées pour les
phrases du langage naturel.
Exemple 1
Pour un langage naturel, une phrase (simple) est
composée d’un sujet suivi par un verbe suivi d’un
complément.
phrase → sujet verbe complement
Exp: L’étudiant va à la faculté.
Dans une deuxième étape, on doit expliquer ce que peut
être un sujet, un verbe et un complément.
phrase → sujet verbe complement
Sujet → article adjectif nom | article nom adjectif | article
nom
Article → le | la| les | l’ | un | une | des
Adjectif → couleur | beau | belle | grand
couleur → bleu | rouge | vert | jaune
Exemple 2
Une expression conditionnelle en java s’écrit sous la
forme:
if (expression) instruction else instruction
Il faut alors définir ce qu’est une expression, une
instruction...
Principe(1/2)
Une grammaire est un formalisme permettant de
spécifier des langages. Il s’agit d’un système de règles
permettant de réécrire un terme en un autre terme.
Les règles de la grammaires sont composée d’une partie
gauche et d’une partie droite reliées par une flèche ou
chacune est elle-même composée de symboles
terminaux et symboles non terminaux.
La réecriture d’un terme en un autre terme consiste à
appliquer une règle au terme original, càd à substituer la
partie gauche par la partie droite de la règle, et obtenir
ainsi un nouveau terme.
Principe (2/2)
On commence la réecriture à partir d’une règle de départ
particuière appelée axiome et on applique
successivement des règles pou obtenir un terme auquel
aucune règle ne s’applique.
Ce terme (qui ne peut pas être réecrit) est ainsi obtenu
ne comportant aucun symbole non terminal est donc un
mot défini sur l’alphabet des symboles terminaux.
L’ensemble de ces mots forment alors un langage que
l’on appelle engendré par la grammaire.
1 Introduction
2 Définitions et exemples
Symboles terminaux/non terminaux
Grammaire
Règles de production
3 Dérivation
4 Arbre de dérivation
Grammaire
Une grammaire formelle est un quadruplet G = (VT , VN ,
S, P) où:
VT est un ensemble non vide de symboles terminaux
(vocabulaire terminal).
VN est un ensemble fini de symboles non-terminaux, avec
VT ∩ VN = ∅ appelé vocabulaire (ou alphabet) non terminal
S est un symbole initial appartenant à VN appelé axiome
(ou start).
P est un ensemble de règles de production (règle de
réécriture)
Un élément de P est une règle de production.
Règles de production
Une règle de production α → β précise que la séquence α
peut être remplacée par la séquence β avec:
α ∈ (VT ∪ VN )+
β ∈ (VT ∪ VN )∗
α est appelée la partie gauche de la production et β est
appelée la partie droite de la production
Exemple: Soit la grammaire G = (X, N, S, P) tels que:
X = {, b} L’ensemble des symboles terminaux
N = {S}: L’ensemble des symboles non terminaux.
S = S: L’axiome
S → ϵ|Sb qui peut être écrite autrement:
S → Sb
§
P=
S→ϵ
1 Introduction
2 Définitions et exemples
3 Dérivation
Dérivation en une/plusieurs étape(s)
Squelette
Langage engendré
Dérivation à gauche/à droite
4 Arbre de dérivation
Squelette de dérivation
Le squelette de dérivation décrit la suite des règles
utilisées. Il s’agit de numéroter toutes les règles de
grammaires et d’utiliser ces numéros pour décrire les
dérivations successives en une étape.
S → Sb
1
§
Exemple: Sur la grammaire
S→ϵ 2
1 1 2
S −→ Sb −→ Sbb −→ bb est la squelette de
dérivation du mot aabb.
Langage engendré
Étant donnée une grammaire G, on note L(G) le langage
∗
généré par G et défini par { ∈ (VT )∗ \S −→ }
L contient tous les mots composés uniquement de
symboles terminaux (de lettres de l’alphabet) que l’on
peut former à partir de S.
Exemple:Le langage engendré par la grammaire
S → Sb
1
§
S→ϵ 2
est L = {n bn , n ≥ 0}
Exemple
Soit la grammaire G ayant§ S pour axiome et P pour
S → Tb|c
règles de production P =
T → cSS|S
Soit le mot m = accacbb.
Deux dérivations permettent de construire le mot m.
Dérivation à gauche:
S → Tb → cSSb → ccSb → ccTbb → ccSbb →
cccbb
Dérivation à droite:
S → Tb → cSSb → cSTbb → cSSbb → cScbb →
cccbb
Ces deux dérivations sont identiques à l’ordre près de
dérivations.
1 Introduction
2 Définitions et exemples
3 Dérivation
4 Arbre de dérivation
Définition et exemple
Arbre ascendant/descendant
Grammaire ambigue
Définition
On appelle arbre de dérivation ou arbre syntaxique tout
arbre tel que:
La racine est l’axiome
Les feuilles sont des symboles terminaux ou ϵ
Les nœuds sont des symboles non terminaux
Les fils d’un nœud α sont β0 , ..., βn si seulement
α → β0 , ..., βn est une production
On essaie de construire l’arbre de dérivation d’un mot:
Si on y arrive, le mot appartient au langage généré par la
grammaire
Sinon, le mot n’appartient pas au langage généré par la
grammaire
Exemple
Soit la grammaire G ayant§ S pour axiome et P pour
S → Tb|c
règles de production P =
T → cSS|S
Soit le mot m = accacbb.
L’arbre de dérivation du mot m est le suivant:
Arbre ascendant/descendant
Ils existent deux approches pour la constructions des
arbres de dérivation:
Approche ascendante qui construit des arbres d’analyse en
partant des feuilles vers la racine.
Approche descendante qui construit des arbres d’analyse
en partant de la racine vers les feuilles
Exemple:
..
⇒ G est donc ambige puisque le mot m possède deux
arbres de dérivation différents
W.GABSI Cours Théorie des langages 26 / 32
Plan
1 Introduction
2 Définitions et exemples
3 Dérivation
4 Arbre de dérivation
Types de grammaire
On définit quatre types de grammaires.
Grammaire de type 3, dite encore grammaire régulière ou
rationnelle
Grammaire de type 2, dite encore grammaire hors
contexte ou encore grammaire algèbrique
Grammaire de type 1, dite encore grammaire contextuelle
Grammaire de type 0
Ces différentes formes dépendent de la forme des
productions.
Grammaire de type 3
Une grammaire est dite régulière ou de type 3 si toutes
ses productions sont de la forme : A → wB ou A→ w
avec:
A appartient à VN (un seul non terminal)
B appartient à VN
w appartient à VT∗ (une chaine de symboles terminaux)
Exemple:
S → S|T|bU|cc
G= T → cT|ϵ
U → bS
Grammaire de type 2
Une grammaire est dite hors contexte ou de type 2 si
toutes ses productions sont de la forme : A → B avec:
A appartient à VN (un seul non terminal)
B appartient à (VN UVT )∗
Exemples:
Exemple1: S → (S)S |ϵ
Exemple2: S → ϵ|Sb
Grammaire de type 1
Une grammaire est dite contextuelle ou de type 1 si
toutes ses productions sont de la forme : A → B avec:
A appartient à (VN UVT )+
B appartient à (VN UVT )∗
|A| ≤ |B|
Les productions S → ϵ sont autorisées si S n’apparait pas
dans la partie droite d’une production de la grammaire
...
Exemple: G = ...
Ab → trcb
Grammaire de type 0
Une grammaire est dite de type de 0 si aucune
restriction sur ses règles de production existe. Ses règles
sont de la forme : A → B avec:
A appartient à (VN UVT )+
B appartient à (VN UVT )∗