fin theorie 27/01
This commit is contained in:
parent
bd86db1c1f
commit
b110ff9594
|
@ -1,56 +1,7 @@
|
||||||
Chapitre II - Grammaire
|
Chapitre II - Grammaire
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
### Exemples
|
||||||
### Définitions
|
|
||||||
|
|
||||||
`Grammaire`
|
|
||||||
|
|
||||||
> 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 $\alpha\rightarrow\beta$ avec $\alpha\in(N\cup T)^+$ et $\beta\in(N\cup T)^*$
|
|
||||||
> * $S$ est le symbole de départ appelé **axiome**
|
|
||||||
|
|
||||||
`Mots générés par une grammaire`
|
|
||||||
|
|
||||||
> Soit $G=(N,T,P,S)$. Les mots générés (engendrés) par $G$ sont les mots $v\in T^*$ (symboles terminaux) qui peuvent être dérivés à partir de l'axiome $S:S\rightarrow*_Gv$
|
|
||||||
|
|
||||||
`Langage généré par une grammaire`
|
|
||||||
|
|
||||||
> 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\in T^*,\ S\rightarrow*_Gv\}$
|
|
||||||
>
|
|
||||||
> **Exemple** Grammaire $G1$
|
|
||||||
>
|
|
||||||
> - $s\rightarrow aS$
|
|
||||||
> - $s\rightarrow bS$
|
|
||||||
> - $s\rightarrow a$
|
|
||||||
> - $s\rightarrow b$
|
|
||||||
> - $s\rightarrow \epsilon$
|
|
||||||
|
|
||||||
##### Notations
|
|
||||||
|
|
||||||
* Pour les caractères de $N$: on utilisera (habituellement) des majuscules.
|
|
||||||
* Pour les caractères de $T$: on utilisera (habituellement) des minuscules.
|
|
||||||
* Pour les règles de $P$, nos règles seront de la forme $X\rightarrow\beta$, avec $X\in N$ et $\beta\in(N\cup T)^*$
|
|
||||||
* L'axiome, noté $S$ (habituellement), est la base de la définition inductive, et c'est la racine de tout arbre de dérivation valide.
|
|
||||||
|
|
||||||
|
|
||||||
##### Remarques
|
|
||||||
|
|
||||||
* 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 à $\epsilon$ ; on appelera ces règles des **$\epsilon-productions$**
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Exemple
|
|
||||||
|
|
||||||
|
|
||||||
##### Règles de production
|
##### Règles de production
|
||||||
1. P $\rightarrow$ SVC
|
1. P $\rightarrow$ SVC
|
||||||
|
@ -82,6 +33,44 @@ Chapitre II - Grammaire
|
||||||
11. $\rightarrow$ la vieille dame regarde la **petite** N
|
11. $\rightarrow$ la vieille dame regarde la **petite** N
|
||||||
12. $\rightarrow$ la vieille dame regarde la petite **fille**
|
12. $\rightarrow$ la vieille dame regarde la petite **fille**
|
||||||
|
|
||||||
|
### Grammaire
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### Définition
|
||||||
|
|
||||||
|
> 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 $\alpha\rightarrow\beta$ avec $\alpha\in(N\cup T)^+$ et $\beta\in(N\cup T)^*$
|
||||||
|
> * $S$ est le symbole de départ appelé **axiome**>
|
||||||
|
|
||||||
|
##### Notations
|
||||||
|
|
||||||
|
* Pour les caractères de $N$: on utilisera (habituellement) des majuscules.
|
||||||
|
* Pour les caractères de $T$: on utilisera (habituellement) des minuscules.
|
||||||
|
* Pour les règles de $P$, nos règles seront de la forme $X\rightarrow\beta$, avec $X\in N$ et $\beta\in(N\cup T)^*$
|
||||||
|
* L'axiome, noté $S$ (habituellement), est la base de la définition inductive, et c'est la racine de tout arbre de dérivation valide.
|
||||||
|
|
||||||
|
|
||||||
|
##### Remarques
|
||||||
|
|
||||||
|
* 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 à $\epsilon$ ; on appelera ces règles des **$\epsilon-productions$**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Dérivation
|
### Dérivation
|
||||||
|
|
||||||
|
@ -108,3 +97,94 @@ Chapitre II - Grammaire
|
||||||
* $u=v_0$
|
* $u=v_0$
|
||||||
* $v=v_k$
|
* $v=v_k$
|
||||||
* $v_i\rightarrow v_{i+1}$ pour $0<i<k$
|
* $v_i\rightarrow v_{i+1}$ pour $0<i<k$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Mots générés par une grammaire
|
||||||
|
|
||||||
|
##### Définition
|
||||||
|
|
||||||
|
> Soit $G=(N,T,P,S)$. Les mots générés (engendrés) par $G$ sont les mots $v\in T^*$ (symboles terminaux) qui peuvent être dérivés à partir de l'axiome $S:S\rightarrow*_Gv$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Langage généré par une grammaire
|
||||||
|
|
||||||
|
##### Définition
|
||||||
|
> 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\in T^*,\ S\rightarrow*_Gv\}$
|
||||||
|
>
|
||||||
|
|
||||||
|
##### Exemples
|
||||||
|
|
||||||
|
Grammaire $G_1$
|
||||||
|
|
||||||
|
- $s\rightarrow aS$
|
||||||
|
- $s\rightarrow bS$
|
||||||
|
- $s\rightarrow a$
|
||||||
|
- $s\rightarrow b$
|
||||||
|
- $s\rightarrow \epsilon$
|
||||||
|
|
||||||
|
Grammaire $G_2$
|
||||||
|
|
||||||
|
* On veut traduire le langage $\Sigma=\{a, b\}$ ou tous les mots sont de la forme $w=\alpha a a\beta$
|
||||||
|
* On va utiliser la grammaire $G_2$
|
||||||
|
1. $S\rightarrow AaaB$
|
||||||
|
2. $A\rightarrow aA|bA|\epsilon$
|
||||||
|
2. $B\rightarrow aB|bB|\epsilon$
|
||||||
|
* Pour le mot $w=abbaabb$, $\in L(G2)$
|
||||||
|
* S $\rightarrow$ AaaB
|
||||||
|
* $\rightarrow$ **aA**aaB
|
||||||
|
* $\rightarrow$ **abA**aaB
|
||||||
|
* $\rightarrow$ **abbA**aaB
|
||||||
|
* $\rightarrow$ **abb$\epsilon$**aaB
|
||||||
|
* $\rightarrow$ abb$\epsilon$aa**bB**
|
||||||
|
* $\rightarrow$ abb$\epsilon$aa**bb$\epsilon$**
|
||||||
|
* $abb\epsilon aabb\epsilon=w$ c'est une dérivation la plus à gauche
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Arbre syntaxique
|
||||||
|
|
||||||
|
|
||||||
|
##### Définition
|
||||||
|
|
||||||
|
> 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.
|
||||||
|
|
||||||
|
|
||||||
|
##### Exemple
|
||||||
|
|
||||||
|
Soit $G_1$ (sous forme factorisée): les règles de production ont une numérotation implicite :
|
||||||
|
|
||||||
|
> S $\rightarrow$ aS $_{(1)}$ | bS $_{(2)}$ | a $_{(3)})$ | b $_{(4)}$ | $\epsilon$ $_{(5)}$
|
||||||
|
|
||||||
|
Soit le mot $\omega=abab$, l'arbre syntaxique est donné par:
|
||||||
|
|
||||||
|
* S $\rightarrow$ S
|
||||||
|
* $\rightarrow$ aS
|
||||||
|
* $\rightarrow$ abS
|
||||||
|
* $\rightarrow$ abaS
|
||||||
|
* $\rightarrow$ ababS $\rightarrow$ abab$\epsilon$ (2)(5)
|
||||||
|
* `ou`
|
||||||
|
* $\rightarrow$ abab (4)
|
||||||
|
|
||||||
|
|
||||||
|
##### Equivalence - Définition
|
||||||
|
|
||||||
|
> On dit de 2 grammaires $G_1$ et $G_2$ sont équivalentes, notés $G_1\sim G_2$, si elles engendrent le même langage, i.e. si $L(G_1)=L(G_2)$
|
||||||
|
|
||||||
|
##### Grammaire ambigue - Définition
|
||||||
|
|
||||||
|
> Une grammaire $G$ est dite ambigue s'il existe un mot $\omega$ de $L(G)$ qui admet au moins deux arbres syntaxiques à partir de $S$.
|
||||||
|
|
|
@ -13,48 +13,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1 id="chapitre-ii---grammaire">Chapitre II - Grammaire</h1>
|
<h1 id="chapitre-ii---grammaire">Chapitre II - Grammaire</h1>
|
||||||
<h3 id="définitions">Définitions</h3>
|
<h3 id="exemples">Exemples</h3>
|
||||||
<p><code>Grammaire</code></p>
|
|
||||||
<blockquote>
|
|
||||||
<p>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).</p>
|
|
||||||
<p>Une grammaire est un quadruplet <span class="math inline"><em>G</em> = (<em>N</em>, <em>T</em>, <em>P</em>, <em>S</em>)</span> ou :</p>
|
|
||||||
<ul>
|
|
||||||
<li><span class="math inline"><em>N</em></span> est l'ensemble des <strong>symboles non terminaux</strong></li>
|
|
||||||
<li><span class="math inline"><em>T</em></span> est l'ensemble des <strong>symboles terminaux</strong> : caractères de l'alphabet</li>
|
|
||||||
<li><span class="math inline"><em>P</em></span> est un ensemble de <strong>règles de production</strong>, de la forme <span class="math inline"><em>α</em> → <em>β</em></span> avec <span class="math inline"><em>α</em> ∈ (<em>N</em> ∪ <em>T</em>)<sup>+</sup></span> et <span class="math inline"><em>β</em> ∈ (<em>N</em> ∪ <em>T</em>)<sup>*</sup></span></li>
|
|
||||||
<li><span class="math inline"><em>S</em></span> est le symbole de départ appelé <strong>axiome</strong></li>
|
|
||||||
</ul>
|
|
||||||
</blockquote>
|
|
||||||
<p><code>Mots générés par une grammaire</code></p>
|
|
||||||
<blockquote>
|
|
||||||
<p>Soit <span class="math inline"><em>G</em> = (<em>N</em>, <em>T</em>, <em>P</em>, <em>S</em>)</span>. Les mots générés (engendrés) par <span class="math inline"><em>G</em></span> sont les mots <span class="math inline"><em>v</em> ∈ <em>T</em><sup>*</sup></span> (symboles terminaux) qui peuvent être dérivés à partir de l'axiome <span class="math inline"><em>S</em> : <em>S</em> → *<sub><em>G</em></sub><em>v</em></span></p>
|
|
||||||
</blockquote>
|
|
||||||
<p><code>Langage généré par une grammaire</code></p>
|
|
||||||
<blockquote>
|
|
||||||
<p>On note <span class="math inline"><em>L</em>(<em>G</em>)</span> le langage généré par <span class="math inline"><em>G</em></span></p>
|
|
||||||
<p>C'est l'ensemble des mots que l'on peut définir à partir de l'axiome de <span class="math inline"><em>G</em></span> en appliquant un nombre finis de fois des règles de <span class="math inline"><em>G</em></span>. <span class="math inline"><em>L</em>(<em>G</em>)={<em>v</em> ∈ <em>T</em><sup>*</sup>, <em>S</em> → *<sub><em>G</em></sub><em>v</em>}</span></p>
|
|
||||||
<p><strong>Exemple</strong> Grammaire <span class="math inline"><em>G</em>1</span></p>
|
|
||||||
<ul>
|
|
||||||
<li><span class="math inline"><em>s</em> → <em>a</em><em>S</em></span></li>
|
|
||||||
<li><span class="math inline"><em>s</em> → <em>b</em><em>S</em></span></li>
|
|
||||||
<li><span class="math inline"><em>s</em> → <em>a</em></span></li>
|
|
||||||
<li><span class="math inline"><em>s</em> → <em>b</em></span></li>
|
|
||||||
<li><span class="math inline"><em>s</em> → <em>ϵ</em></span></li>
|
|
||||||
</ul>
|
|
||||||
</blockquote>
|
|
||||||
<h5 id="notations">Notations</h5>
|
|
||||||
<ul>
|
|
||||||
<li>Pour les caractères de <span class="math inline"><em>N</em></span>: on utilisera (habituellement) des majuscules.</li>
|
|
||||||
<li>Pour les caractères de <span class="math inline"><em>T</em></span>: on utilisera (habituellement) des minuscules.</li>
|
|
||||||
<li>Pour les règles de <span class="math inline"><em>P</em></span>, nos règles seront de la forme <span class="math inline"><em>X</em> → <em>β</em></span>, avec <span class="math inline"><em>X</em> ∈ <em>N</em></span> et <span class="math inline"><em>β</em> ∈ (<em>N</em> ∪ <em>T</em>)<sup>*</sup></span></li>
|
|
||||||
<li>L'axiome, noté <span class="math inline"><em>S</em></span> (habituellement), est la base de la définition inductive, et c'est la racine de tout arbre de dérivation valide.</li>
|
|
||||||
</ul>
|
|
||||||
<h5 id="remarques">Remarques</h5>
|
|
||||||
<ul>
|
|
||||||
<li><p>Souvent on décrit une grammaire seulement par les règles.</p></li>
|
|
||||||
<li><p>On peut avoir des règles de production dont la partie de droite est réduite à <span class="math inline"><em>ϵ</em></span> ; on appelera ces règles des <strong><span class="math inline"><em>ϵ</em> − <em>p</em><em>r</em><em>o</em><em>d</em><em>u</em><em>c</em><em>t</em><em>i</em><em>o</em><em>n</em><em>s</em></span></strong></p></li>
|
|
||||||
</ul>
|
|
||||||
<h3 id="exemple">Exemple</h3>
|
|
||||||
<h5 id="règles-de-production">Règles de production</h5>
|
<h5 id="règles-de-production">Règles de production</h5>
|
||||||
<ol type="1">
|
<ol type="1">
|
||||||
<li>P <span class="math inline">→</span> SVC</li>
|
<li>P <span class="math inline">→</span> SVC</li>
|
||||||
|
@ -86,6 +45,30 @@
|
||||||
<li><span class="math inline">→</span> la vieille dame regarde la <strong>petite</strong> N</li>
|
<li><span class="math inline">→</span> la vieille dame regarde la <strong>petite</strong> N</li>
|
||||||
<li><span class="math inline">→</span> la vieille dame regarde la petite <strong>fille</strong></li>
|
<li><span class="math inline">→</span> la vieille dame regarde la petite <strong>fille</strong></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
<h3 id="grammaire">Grammaire</h3>
|
||||||
|
<h5 id="définition">Définition</h5>
|
||||||
|
<blockquote>
|
||||||
|
<p>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).</p>
|
||||||
|
<p>Une grammaire est un quadruplet <span class="math inline"><em>G</em> = (<em>N</em>, <em>T</em>, <em>P</em>, <em>S</em>)</span> ou :</p>
|
||||||
|
<ul>
|
||||||
|
<li><span class="math inline"><em>N</em></span> est l'ensemble des <strong>symboles non terminaux</strong></li>
|
||||||
|
<li><span class="math inline"><em>T</em></span> est l'ensemble des <strong>symboles terminaux</strong> : caractères de l'alphabet</li>
|
||||||
|
<li><span class="math inline"><em>P</em></span> est un ensemble de <strong>règles de production</strong>, de la forme <span class="math inline"><em>α</em> → <em>β</em></span> avec <span class="math inline"><em>α</em> ∈ (<em>N</em> ∪ <em>T</em>)<sup>+</sup></span> et <span class="math inline"><em>β</em> ∈ (<em>N</em> ∪ <em>T</em>)<sup>*</sup></span></li>
|
||||||
|
<li><span class="math inline"><em>S</em></span> est le symbole de départ appelé <strong>axiome</strong>></li>
|
||||||
|
</ul>
|
||||||
|
</blockquote>
|
||||||
|
<h5 id="notations">Notations</h5>
|
||||||
|
<ul>
|
||||||
|
<li>Pour les caractères de <span class="math inline"><em>N</em></span>: on utilisera (habituellement) des majuscules.</li>
|
||||||
|
<li>Pour les caractères de <span class="math inline"><em>T</em></span>: on utilisera (habituellement) des minuscules.</li>
|
||||||
|
<li>Pour les règles de <span class="math inline"><em>P</em></span>, nos règles seront de la forme <span class="math inline"><em>X</em> → <em>β</em></span>, avec <span class="math inline"><em>X</em> ∈ <em>N</em></span> et <span class="math inline"><em>β</em> ∈ (<em>N</em> ∪ <em>T</em>)<sup>*</sup></span></li>
|
||||||
|
<li>L'axiome, noté <span class="math inline"><em>S</em></span> (habituellement), est la base de la définition inductive, et c'est la racine de tout arbre de dérivation valide.</li>
|
||||||
|
</ul>
|
||||||
|
<h5 id="remarques">Remarques</h5>
|
||||||
|
<ul>
|
||||||
|
<li><p>Souvent on décrit une grammaire seulement par les règles.</p></li>
|
||||||
|
<li><p>On peut avoir des règles de production dont la partie de droite est réduite à <span class="math inline"><em>ϵ</em></span> ; on appelera ces règles des <strong><span class="math inline"><em>ϵ</em> − <em>p</em><em>r</em><em>o</em><em>d</em><em>u</em><em>c</em><em>t</em><em>i</em><em>o</em><em>n</em><em>s</em></span></strong></p></li>
|
||||||
|
</ul>
|
||||||
<h3 id="dérivation">Dérivation</h3>
|
<h3 id="dérivation">Dérivation</h3>
|
||||||
<h5 id="dérivation-du-plus-à-gauche">Dérivation du plus à gauche</h5>
|
<h5 id="dérivation-du-plus-à-gauche">Dérivation du plus à gauche</h5>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
|
@ -113,5 +96,74 @@
|
||||||
<li><span class="math inline"><em>v</em> = <em>v</em><sub><em>k</em></sub></span></li>
|
<li><span class="math inline"><em>v</em> = <em>v</em><sub><em>k</em></sub></span></li>
|
||||||
<li><span class="math inline"><em>v</em><sub><em>i</em></sub> → <em>v</em><sub><em>i</em> + 1</sub></span> pour <span class="math inline">0 < <em>i</em> < <em>k</em></span></li>
|
<li><span class="math inline"><em>v</em><sub><em>i</em></sub> → <em>v</em><sub><em>i</em> + 1</sub></span> pour <span class="math inline">0 < <em>i</em> < <em>k</em></span></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<h3 id="mots-générés-par-une-grammaire">Mots générés par une grammaire</h3>
|
||||||
|
<h5 id="définition-1">Définition</h5>
|
||||||
|
<blockquote>
|
||||||
|
<p>Soit <span class="math inline"><em>G</em> = (<em>N</em>, <em>T</em>, <em>P</em>, <em>S</em>)</span>. Les mots générés (engendrés) par <span class="math inline"><em>G</em></span> sont les mots <span class="math inline"><em>v</em> ∈ <em>T</em><sup>*</sup></span> (symboles terminaux) qui peuvent être dérivés à partir de l'axiome <span class="math inline"><em>S</em> : <em>S</em> → *<sub><em>G</em></sub><em>v</em></span></p>
|
||||||
|
</blockquote>
|
||||||
|
<h3 id="langage-généré-par-une-grammaire">Langage généré par une grammaire</h3>
|
||||||
|
<h5 id="définition-2">Définition</h5>
|
||||||
|
<blockquote>
|
||||||
|
<p>On note <span class="math inline"><em>L</em>(<em>G</em>)</span> le langage généré par <span class="math inline"><em>G</em></span></p>
|
||||||
|
<p>C'est l'ensemble des mots que l'on peut définir à partir de l'axiome de <span class="math inline"><em>G</em></span> en appliquant un nombre finis de fois des règles de <span class="math inline"><em>G</em></span>. <span class="math inline"><em>L</em>(<em>G</em>)={<em>v</em> ∈ <em>T</em><sup>*</sup>, <em>S</em> → *<sub><em>G</em></sub><em>v</em>}</span></p>
|
||||||
|
</blockquote>
|
||||||
|
<h5 id="exemples-1">Exemples</h5>
|
||||||
|
<p>Grammaire <span class="math inline"><em>G</em><sub>1</sub></span></p>
|
||||||
|
<ul>
|
||||||
|
<li><span class="math inline"><em>s</em> → <em>a</em><em>S</em></span></li>
|
||||||
|
<li><span class="math inline"><em>s</em> → <em>b</em><em>S</em></span></li>
|
||||||
|
<li><span class="math inline"><em>s</em> → <em>a</em></span></li>
|
||||||
|
<li><span class="math inline"><em>s</em> → <em>b</em></span></li>
|
||||||
|
<li><span class="math inline"><em>s</em> → <em>ϵ</em></span></li>
|
||||||
|
</ul>
|
||||||
|
<p>Grammaire <span class="math inline"><em>G</em><sub>2</sub></span></p>
|
||||||
|
<ul>
|
||||||
|
<li>On veut traduire le langage <span class="math inline"><em>Σ</em> = {<em>a</em>, <em>b</em>}</span> ou tous les mots sont de la forme <span class="math inline"><em>w</em> = <em>α</em><em>a</em><em>a</em><em>β</em></span></li>
|
||||||
|
<li>On va utiliser la grammaire <span class="math inline"><em>G</em><sub>2</sub></span>
|
||||||
|
<ol type="1">
|
||||||
|
<li><span class="math inline"><em>S</em> → <em>A</em><em>a</em><em>a</em><em>B</em></span></li>
|
||||||
|
<li><span class="math inline"><em>A</em> → <em>a</em><em>A</em>|<em>b</em><em>A</em>|<em>ϵ</em></span></li>
|
||||||
|
<li><span class="math inline"><em>B</em> → <em>a</em><em>B</em>|<em>b</em><em>B</em>|<em>ϵ</em></span></li>
|
||||||
|
</ol></li>
|
||||||
|
<li>Pour le mot <span class="math inline"><em>w</em> = <em>a</em><em>b</em><em>b</em><em>a</em><em>a</em><em>b</em><em>b</em></span>, <span class="math inline">∈<em>L</em>(<em>G</em>2)</span>
|
||||||
|
<ul>
|
||||||
|
<li>S <span class="math inline">→</span> AaaB</li>
|
||||||
|
<li><span class="math inline">→</span> <strong>aA</strong>aaB</li>
|
||||||
|
<li><span class="math inline">→</span> <strong>abA</strong>aaB</li>
|
||||||
|
<li><span class="math inline">→</span> <strong>abbA</strong>aaB</li>
|
||||||
|
<li><span class="math inline">→</span> <strong>abb<span class="math inline"><em>ϵ</em></span></strong>aaB</li>
|
||||||
|
<li><span class="math inline">→</span> abb<span class="math inline"><em>ϵ</em></span>aa<strong>bB</strong></li>
|
||||||
|
<li><span class="math inline">→</span> abb<span class="math inline"><em>ϵ</em></span>aa<strong>bb<span class="math inline"><em>ϵ</em></span></strong></li>
|
||||||
|
<li><span class="math inline"><em>a</em><em>b</em><em>b</em><em>ϵ</em><em>a</em><em>a</em><em>b</em><em>b</em><em>ϵ</em> = <em>w</em></span> c'est une dérivation la plus à gauche</li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="arbre-syntaxique">Arbre syntaxique</h3>
|
||||||
|
<h5 id="définition-3">Définition</h5>
|
||||||
|
<blockquote>
|
||||||
|
<p>Soit <span class="math inline"><em>G</em> = (<em>N</em>, <em>T</em>, <em>P</em>, <em>S</em>)</span>. Un <strong>arbre syntaxique</strong> est un arbre dont la racine est l'axiome (<span class="math inline"><em>S</em></span>), dont les noeuds internes sont étiquetés par des symboles de <span class="math inline"><em>N</em></span>, et les feuilles sont étiquetées par des symboles de <span class="math inline"><em>T</em></span> ou par le mot vide. Chaque noeud interne correspond à une règle de production.</p>
|
||||||
|
</blockquote>
|
||||||
|
<h5 id="exemple">Exemple</h5>
|
||||||
|
<p>Soit <span class="math inline"><em>G</em><sub>1</sub></span> (sous forme factorisée): les règles de production ont une numérotation implicite :</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>S <span class="math inline">→</span> aS <span class="math inline"><em></em><sub>(1)</sub></span> | bS <span class="math inline"><em></em><sub>(2)</sub></span> | a <span class="math inline"><em></em><sub>(3)</sub>)</span> | b <span class="math inline"><em></em><sub>(4)</sub></span> | <span class="math inline"><em>ϵ</em></span> <span class="math inline"><em></em><sub>(5)</sub></span></p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Soit le mot <span class="math inline"><em>ω</em> = <em>a</em><em>b</em><em>a</em><em>b</em></span>, l'arbre syntaxique est donné par:</p>
|
||||||
|
<ul>
|
||||||
|
<li>S <span class="math inline">→</span> S</li>
|
||||||
|
<li><span class="math inline">→</span> aS</li>
|
||||||
|
<li><span class="math inline">→</span> abS</li>
|
||||||
|
<li><span class="math inline">→</span> abaS</li>
|
||||||
|
<li><span class="math inline">→</span> ababS <span class="math inline">→</span> abab<span class="math inline"><em>ϵ</em></span> (2)(5)</li>
|
||||||
|
<li><code>ou</code></li>
|
||||||
|
<li><span class="math inline">→</span> abab (4)</li>
|
||||||
|
</ul>
|
||||||
|
<h5 id="equivalence---définition">Equivalence - Définition</h5>
|
||||||
|
<blockquote>
|
||||||
|
<p>On dit de 2 grammaires <span class="math inline"><em>G</em><sub>1</sub></span> et <span class="math inline"><em>G</em><sub>2</sub></span> sont équivalentes, notés <span class="math inline"><em>G</em><sub>1</sub> ∼ <em>G</em><sub>2</sub></span>, si elles engendrent le même langage, i.e. si <span class="math inline"><em>L</em>(<em>G</em><sub>1</sub>)=<em>L</em>(<em>G</em><sub>2</sub>)</span></p>
|
||||||
|
</blockquote>
|
||||||
|
<h5 id="grammaire-ambigue---définition">Grammaire ambigue - Définition</h5>
|
||||||
|
<blockquote>
|
||||||
|
<p>Une grammaire <span class="math inline"><em>G</em></span> est dite ambigue s'il existe un mot <span class="math inline"><em>ω</em></span> de <span class="math inline"><em>L</em>(<em>G</em>)</span> qui admet au moins deux arbres syntaxiques à partir de <span class="math inline"><em>S</em></span>.</p>
|
||||||
|
</blockquote>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in New Issue