"La vielle dame regarde la petite fille"
Etapes de dérivation:
Ensemble de règles permettant de générer des mots du langage sous forme de réécriture (on remplace une séquence par une autre).
Une grammaire est un quadruplet G = (N, T, P, S) ou :
- N est l'ensemble des symboles non terminaux
- T est l'ensemble des symboles terminaux : caractères de l'alphabet
- P est un ensemble de règles de production, de la forme α → β avec α ∈ (N ∪ T)+ et β ∈ (N ∪ T)*
- S est le symbole de départ appelé axiome>
Souvent on décrit une grammaire seulement par les règles.
On peut avoir des règles de production dont la partie de droite est réduite à ϵ ; on appelera ces règles des ϵ − productions
Une suite de dérivations obtenues en choisissant à chaque étape le symbole non terminal le plus à gauche.
Une suite de dérivations obtenues en choisissant à chaque étape le symbole non terminal le plus à droite.
Soit G = (N, T, P, S) une grammaire. G permet de dériver v de u en une étape, notée u→Gv, si et seulement si:
Soit G = (N, T, P, S) une grammaire. G permet de dériver v de u en plusieurs étapes, noté u → *Gv si et seulement si il existe k et v0, ..., vk tels que :
Soit G = (N, T, P, S). Les mots générés (engendrés) par G sont les mots v ∈ T* (symboles terminaux) qui peuvent être dérivés à partir de l'axiome S : S → *Gv
On note L(G) le langage généré par G
C'est l'ensemble des mots que l'on peut définir à partir de l'axiome de G en appliquant un nombre finis de fois des règles de G. L(G)={v ∈ T*, S → *Gv}
Grammaire G1
Grammaire G2
Soit G = (N, T, P, S). Un arbre syntaxique est un arbre dont la racine est l'axiome (S), dont les noeuds internes sont étiquetés par des symboles de N, et les feuilles sont étiquetées par des symboles de T ou par le mot vide. Chaque noeud interne correspond à une règle de production.
Soit G1 (sous forme factorisée): les règles de production ont une numérotation implicite :
S → aS (1) | bS (2) | a (3)) | b (4) | ϵ (5)
Soit le mot ω = abab, l'arbre syntaxique est donné par:
ou
On dit de 2 grammaires G1 et G2 sont équivalentes, notés G1 ∼ G2, si elles engendrent le même langage, i.e. si L(G1)=L(G2)
Une grammaire G est dite ambigue s'il existe un mot ω de L(G) qui admet au moins deux arbres syntaxiques à partir de S.