Langages hors-contexte
Damien Nouvel
Origines
Plan
1. Origines
2. Définitions 3. Dérivations 4. Simplification
Origines
Langages réguliers et grammaires
§ Les langages réguliers (ou rationnels) reconnaissent
‚ Des mots issus de lexiques
‚ Des formes normales (chiffres, dates, etc.) ñ Ils sontinsuffisants pour
‚ Les formes récursives
‚ Les structures de typetanbnu
‚ La recherche de la syntaxe dans le langage naturel
‚ L’analyse de programmes
ñ La machine de Turing peut faire mieux que ça !
Origines
Langages réguliers et grammaires
§ Les langages réguliers (ou rationnels) reconnaissent
‚ Des mots issus de lexiques
‚ Des formes normales (chiffres, dates, etc.)
ñ Ils sontinsuffisants pour
‚ Les formes récursives
‚ Les structures de typetanbnu
‚ La recherche de la syntaxe dans le langage naturel
‚ L’analyse de programmes
ñ La machine de Turing peut faire mieux que ça !
Origines
Langages réguliers et grammaires
§ Les langages réguliers (ou rationnels) reconnaissent
‚ Des mots issus de lexiques
‚ Des formes normales (chiffres, dates, etc.) ñ Ils sontinsuffisants pour
‚ Les formes récursives
‚ Les structures de typetanbnu
‚ La recherche de la syntaxe dans le langage naturel
‚ L’analyse de programmes
ñ La machine de Turing peut faire mieux que ça !
Origines
Langages réguliers et grammaires
§ Les langages réguliers (ou rationnels) reconnaissent
‚ Des mots issus de lexiques
‚ Des formes normales (chiffres, dates, etc.) ñ Ils sontinsuffisants pour
‚ Les formes récursives
‚ Les structures de typetanbnu
‚ La recherche de la syntaxe dans le langage naturel
‚ L’analyse de programmes
ñ La machine de Turing peut faire mieux que ça !
Origines
Historique des grammaires
§ Hiérarchie de Chomsky (1956)
‚ Analyse du langagenaturel (morphologie, syntaxe)
‚ Grammaire formelles
‚ Type 0 : grammaires générales (machine de Turing)
‚ Type 1 : grammaires contextuelles (automates lin. bornés)
‚ Type 2 : grammaireshors-contexte (automates à pile)
‚ Type 3 : grammairesrégulières (automates à états finis)
§ Langages de programmation artificiels (compilation)
‚ Compilateurs mot-à-mot (assembleur)
‚ Expressions mathématiques :arbres d’analyse
‚ Compilateurs modernes
‚ Analyselexicale(scanner)
‚ Analysesyntaxique(parser)
ñ Utilisation des méthodes linguistiques pour la programmation
Origines
Historique des grammaires
§ Hiérarchie de Chomsky (1956)
‚ Analyse du langagenaturel (morphologie, syntaxe)
‚ Grammaire formelles
‚ Type 0 : grammaires générales (machine de Turing)
‚ Type 1 : grammaires contextuelles (automates lin. bornés)
‚ Type 2 : grammaireshors-contexte (automates à pile)
‚ Type 3 : grammairesrégulières (automates à états finis)
§ Langages de programmation artificiels (compilation)
‚ Compilateurs mot-à-mot (assembleur)
‚ Expressions mathématiques :arbres d’analyse
‚ Compilateurs modernes
‚ Analyselexicale(scanner)
‚ Analysesyntaxique(parser)
ñ Utilisation des méthodes linguistiques pour la programmation
Origines
Historique des grammaires
§ Hiérarchie de Chomsky (1956)
‚ Analyse du langagenaturel (morphologie, syntaxe)
‚ Grammaire formelles
‚ Type 0 : grammaires générales (machine de Turing)
‚ Type 1 : grammaires contextuelles (automates lin. bornés)
‚ Type 2 : grammaireshors-contexte (automates à pile)
‚ Type 3 : grammairesrégulières (automates à états finis)
§ Langages de programmation artificiels (compilation)
‚ Compilateurs mot-à-mot (assembleur)
‚ Expressions mathématiques :arbres d’analyse
‚ Compilateurs modernes
‚ Analyselexicale(scanner)
‚ Analysesyntaxique(parser)
Définitions
Plan
1. Origines 2. Définitions 3. Dérivations 4. Simplification
Définitions
Arbre d’expression
§ Analyse de l’expression mathématique 1
2 + 3˚? 9
‚ Priorité des opérateurs :(1
2 + (3˚? 9))
‚ Arbre d’expression : +
˜
1 2
˚
3 ?
9
ñ Chaque branche est aussi une expression valide : 1
2, 3˚? 9
Définitions
Arbre d’expression
§ Analyse de l’expression mathématique 1
2 + 3˚? 9
‚ Priorité des opérateurs :(1
2 + (3˚? 9))
‚ Arbre d’expression : +
˜
1 2
˚
3 ?
9
ñ Chaque branche est aussi une expression valide : 1
2, 3˚? 9
Définitions
Arbre d’expression
§ Analyse de l’expression mathématique 1
2 + 3˚? 9
‚ Priorité des opérateurs :(1
2 + (3˚? 9))
‚ Arbre d’expression : +
˜
1 2
˚
3 ?
9
Définitions
Backus-Naur Form
§ Langage de programmation Algol 1960 (J. Backus et P. Naur)
§ Règles de description du langage
‚ Pour la programmation
<ifstruct> ::= "if" "(" <test> ")" "{" <block> "}"
<test> ::= <var> "==" <num> | <var> "&&" <var> | …
<block> ::= <inst> | <inst> <block> ñ Vérificationde la syntaxe des programmes ñ Récursivitédans les règles
‚ Pour la linguistique
<E> ::= <GN> <GV>
<GN> ::= <DET> <NC> | <DET> <ADJ> <NC>
<GV> ::= "marche" | "dort"
<DET> ::= "le"
<NC> ::= "chien" | "chat"
<ADJ> ::= "petit" | "gros"
Définitions
Backus-Naur Form
§ Langage de programmation Algol 1960 (J. Backus et P. Naur)
§ Règles de description du langage
‚ Pour la programmation
<ifstruct> ::= "if" "(" <test> ")" "{" <block> "}"
<test> ::= <var> "==" <num> | <var> "&&" <var> | …
<block> ::= <inst> | <inst> <block>
ñ Vérificationde la syntaxe des programmes ñ Récursivitédans les règles
‚ Pour la linguistique
<E> ::= <GN> <GV>
<GN> ::= <DET> <NC> | <DET> <ADJ> <NC>
<GV> ::= "marche" | "dort"
<DET> ::= "le"
<NC> ::= "chien" | "chat"
<ADJ> ::= "petit" | "gros"
Définitions
Backus-Naur Form
§ Langage de programmation Algol 1960 (J. Backus et P. Naur)
§ Règles de description du langage
‚ Pour la programmation
<ifstruct> ::= "if" "(" <test> ")" "{" <block> "}"
<test> ::= <var> "==" <num> | <var> "&&" <var> | …
<block> ::= <inst> | <inst> <block>
ñ Vérificationde la syntaxe des programmes ñ Récursivitédans les règles
‚ Pour la linguistique
<E> ::= <GN> <GV>
<GN> ::= <DET> <NC> | <DET> <ADJ> <NC>
<GV> ::= "marche" | "dort"
<DET> ::= "le"
<NC> ::= "chien" | "chat"
Définitions
Définition des grammaires hors-contexte
ñ Reconnaissance / générationde langages
§ QuadrupletG= (T,N,R,S)
‚ T: symboles terminaux
ñ Lesmotspossibles des énoncés
‚ N: symboles non-terminaux
ñ Groupes de mots intéressants (GN, GV, etc.)
‚ RĂNˆ(NYT)˚ : règles
ñ Déterminent la composition des groupes de mots ñ Notations
‚ Une règle s’écritAÑαavecAPNetαP(NYT)˚
‚ Des règlesAÑαetAÑβ s’écriventAÑα|β
‚ SPN: axiome (symbole de départ) ñ Représente l’énoncé
Définitions
Définition des grammaires hors-contexte
ñ Reconnaissance / générationde langages
§ QuadrupletG= (T,N,R,S)
‚ T: symboles terminaux
ñ Lesmotspossibles des énoncés
‚ N: symboles non-terminaux
ñ Groupes de mots intéressants (GN, GV, etc.)
‚ RĂNˆ(NYT)˚ : règles
ñ Déterminent la composition des groupes de mots ñ Notations
‚ Une règle s’écritAÑαavecAPNetαP(NYT)˚
‚ Des règlesAÑαetAÑβ s’écriventAÑα|β
‚ SPN: axiome (symbole de départ) ñ Représente l’énoncé
Définitions
Définition des grammaires hors-contexte
ñ Reconnaissance / générationde langages
§ QuadrupletG= (T,N,R,S)
‚ T: symboles terminaux
ñ Lesmotspossibles des énoncés
‚ N: symboles non-terminaux
ñ Groupes de mots intéressants (GN, GV, etc.)
‚ RĂNˆ(NYT)˚ : règles
ñ Déterminent la composition des groupes de mots ñ Notations
‚ Une règle s’écritAÑαavecAPNetαP(NYT)˚
‚ Des règlesAÑαetAÑβ s’écriventAÑα|β
‚ SPN: axiome (symbole de départ) ñ Représente l’énoncé
Définitions
Définition des grammaires hors-contexte
ñ Reconnaissance / générationde langages
§ QuadrupletG= (T,N,R,S)
‚ T: symboles terminaux
ñ Lesmotspossibles des énoncés
‚ N: symboles non-terminaux
ñ Groupes de mots intéressants (GN, GV, etc.)
‚ RĂNˆ(NYT)˚ : règles
ñ Déterminent la composition des groupes de mots ñ Notations
‚ Une règle s’écritAÑαavecAPNetαP(NYT)˚
‚ Des règlesAÑαetAÑβ s’écriventAÑα|β
‚ SPN: axiome (symbole de départ) ñ Représente l’énoncé
Définitions
Définition des grammaires hors-contexte
ñ Reconnaissance / générationde langages
§ QuadrupletG= (T,N,R,S)
‚ T: symboles terminaux
ñ Lesmotspossibles des énoncés
‚ N: symboles non-terminaux
ñ Groupes de mots intéressants (GN, GV, etc.)
‚ RĂNˆ(NYT)˚ : règles
ñ Déterminent la composition des groupes de mots ñ Notations
‚ Une règle s’écritAÑαavecAPNetαP(NYT)˚
‚ Des règlesAÑαetAÑβ s’écriventAÑα|β
‚ SPN: axiome (symbole de départ) ñ Représente l’énoncé
Définitions
Définition des grammaires hors-contexte
ñ Reconnaissance / générationde langages
§ QuadrupletG= (T,N,R,S)
‚ T: symboles terminaux
ñ Lesmotspossibles des énoncés
‚ N: symboles non-terminaux
ñ Groupes de mots intéressants (GN, GV, etc.)
‚ RĂNˆ(NYT)˚ : règles
ñ Déterminent la composition des groupes de mots ñ Notations
‚ Une règle s’écritAÑαavecAPNetαP(NYT)˚
‚ Des règlesAÑαetAÑβ s’écriventAÑα|β
‚ SPN: axiome (symbole de départ) ñ Représente l’énoncé
Définitions
Exemple
§ Expressions mathématiques
‚ N=tS,Eu etT=t+,˚,˜,?,(,),1,2,3...u
‚ Règles : SÑE EÑE+E EÑE˚E EÑE˜E EÑ(E) EÑ?
E EÑ1|2|3. . .
§ Unedérivation possible :
SÑEÑE+EÑE˜E+E¨ ¨ ¨ Ñ 1˜2 + 3˚? 9
Définitions
Exemple
§ Expressions mathématiques
‚ N=tS,Eu etT=t+,˚,˜,?,(,),1,2,3...u
‚ Règles : SÑE EÑE+E EÑE˚E EÑE˜E EÑ(E) EÑ?
E EÑ1|2|3. . .
§ Unedérivation possible :
SÑEÑE+EÑE˜E+E¨ ¨ ¨ Ñ 1˜2 + 3˚? 9
Définitions
Exercices
§ Définissez des grammaires qui reconnaissent
‚ Un code postal
‚ Le langage des dates au formatjj/mm/aaaa
‚ Une plaque d’immatriculation française
‚ Un nombre entier naturel (positif)
‚ Un nombre réel
‚ Le langage régulierab˚cd˚
‚ Le langagetancn,ną0u
‚ Les palindrômes
‚ Une expression de parenthèses() et crochets []
‚ Le langagetanbcmd,ną0,měnu
Dérivations
Plan
1. Origines
2. Définitions 3. Dérivations 4. Simplification
Dérivations
Dérivation
§ Opérations qui génèrentle langage pour une grammaire
§ Un mot αP(NYT)˚ sedérive en un mot β P(NYT)˚ si
‚ α se décompose enα1Aα2 avec APN
‚ β se décompose en α1γα2 avecγ P(NYT)˚
‚ AÑγ PR (c’est une règle)
§ Exemple :E+E˜EÑE+E˚E˜E
‚ α1 =E+
‚ α2 =˜E
‚ A=E
‚ γ =E˚E
‚ EÑE˚EPR
Dérivations
Dérivation
§ Opérations qui génèrentle langage pour une grammaire
§ Un mot αP(NYT)˚ sedérive en un mot β P(NYT)˚ si
‚ α se décompose enα1Aα2 avec APN
‚ β se décompose en α1γα2 avecγ P(NYT)˚
‚ AÑγ PR (c’est une règle)
§ Exemple :E+E˜EÑE+E˚E˜E
‚ α1 =E+
‚ α2 =˜E
‚ A=E
‚ γ =E˚E
‚ EÑE˚EPR
Dérivations
Dérivation
§ Opérations qui génèrentle langage pour une grammaire
§ Un mot αP(NYT)˚ sedérive en un mot β P(NYT)˚ si
‚ α se décompose enα1Aα2 avec APN
‚ β se décompose en α1γα2 avecγ P(NYT)˚
‚ AÑγ PR (c’est une règle)
§ Exemple :E+E˜EÑE+E˚E˜E
‚ α1 =E+
‚ α2 =˜E
‚ A=E
‚ γ =E˚E
‚ EÑE˚EPR
Dérivations
Suite de dérivations
§ Par transitivité
‚ Chaîne de dérivationsαÑβ¨ ¨ ¨ Ñγ =αÝÑ˚ γ
‚ Fermeture transitive, clôture (cf étoile de Kleene)
‚ Siγ P(NYT)˚ alorsγ est uneproto-phrase de G
§ Ordre des dérivations
‚ Possibilité d’analyses pour1 + 2 + 3
‚ Dérivation gauche : réécrit le non-terminal le plus à gauche EÑE+EÑ1 +EÑ1 +E+EÑ1 + 2 +EÑ1 + 2 + 3
‚ Dérivation droite : réécrit le non-terminal le plus à droite EÑE+EÑE+ 3ÑE+E+ 3ÑE+ 2 + 3Ñ1 + 2 + 3 ñ Dérivations différentes …même résultat ?
ñ Pas toujours (par ex. associativité, priorité des opérateurs)
Dérivations
Suite de dérivations
§ Par transitivité
‚ Chaîne de dérivationsαÑβ¨ ¨ ¨ Ñγ =αÝÑ˚ γ
‚ Fermeture transitive, clôture (cf étoile de Kleene)
‚ Siγ P(NYT)˚ alorsγ est uneproto-phrase de G
§ Ordre des dérivations
‚ Possibilité d’analyses pour1 + 2 + 3
‚ Dérivation gauche : réécrit le non-terminal le plus à gauche EÑE+EÑ1 +EÑ1 +E+EÑ1 + 2 +EÑ1 + 2 + 3
‚ Dérivation droite : réécrit le non-terminal le plus à droite EÑE+EÑE+ 3ÑE+E+ 3ÑE+ 2 + 3Ñ1 + 2 + 3 ñ Dérivations différentes …même résultat ?
ñ Pas toujours (par ex. associativité, priorité des opérateurs)
Dérivations
Suite de dérivations
§ Par transitivité
‚ Chaîne de dérivationsαÑβ¨ ¨ ¨ Ñγ =αÝÑ˚ γ
‚ Fermeture transitive, clôture (cf étoile de Kleene)
‚ Siγ P(NYT)˚ alorsγ est uneproto-phrase de G
§ Ordre des dérivations
‚ Possibilité d’analyses pour1 + 2 + 3
‚ Dérivation gauche : réécrit le non-terminal le plus à gauche EÑE+EÑ1 +EÑ1 +E+EÑ1 + 2 +EÑ1 + 2 + 3
‚ Dérivation droite : réécrit le non-terminal le plus à droite EÑE+EÑE+ 3ÑE+E+ 3ÑE+ 2 + 3Ñ1 + 2 + 3 ñ Dérivations différentes …même résultat ?
ñ Pas toujours (par ex. associativité, priorité des opérateurs)
Dérivations
Suite de dérivations
§ Par transitivité
‚ Chaîne de dérivationsαÑβ¨ ¨ ¨ Ñγ =αÝÑ˚ γ
‚ Fermeture transitive, clôture (cf étoile de Kleene)
‚ Siγ P(NYT)˚ alorsγ est uneproto-phrase de G
§ Ordre des dérivations
‚ Possibilité d’analyses pour1 + 2 + 3
‚ Dérivation gauche : réécrit le non-terminal le plus à gauche EÑE+EÑ1 +EÑ1 +E+EÑ1 + 2 +EÑ1 + 2 + 3
‚ Dérivation droite : réécrit le non-terminal le plus à droite EÑE+EÑE+ 3ÑE+E+ 3ÑE+ 2 + 3Ñ1 + 2 + 3
ñ Dérivations différentes …même résultat ?
ñ Pas toujours (par ex. associativité, priorité des opérateurs)
Dérivations
Suite de dérivations
§ Par transitivité
‚ Chaîne de dérivationsαÑβ¨ ¨ ¨ Ñγ =αÝÑ˚ γ
‚ Fermeture transitive, clôture (cf étoile de Kleene)
‚ Siγ P(NYT)˚ alorsγ est uneproto-phrase de G
§ Ordre des dérivations
‚ Possibilité d’analyses pour1 + 2 + 3
‚ Dérivation gauche : réécrit le non-terminal le plus à gauche EÑE+EÑ1 +EÑ1 +E+EÑ1 + 2 +EÑ1 + 2 + 3
‚ Dérivation droite : réécrit le non-terminal le plus à droite EÑE+EÑE+ 3ÑE+E+ 3ÑE+ 2 + 3Ñ1 + 2 + 3 ñ Dérivations différentes …même résultat ?
ñ Pas toujours (par ex. associativité, priorité des opérateurs)
Dérivations
Langage généré
§ Soit Gune grammaire, alors le langage généré par G est L(G) =tmPT˚|SÑÝ˚ mu
ñ Sous-ensemble de T˚ ñ Pas nécessairement fini
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
dérivation gauche
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
dérivation gauche
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
dérivation gauche
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
dérivation gauche
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle)
ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
dérivation gauche
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
dérivation gauche
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
dérivation gauche
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E + E
˚ E
3
E E
1
+ E
E 2
˚ E
3
dérivation droite
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
E E
1
+ E
E 2
˚ E
3
Simplification
Plan
1. Origines
2. Définitions 3. Dérivations 4. Simplification
Simplification
Simplifier une grammaire
ñ Supprimer les éléments inutilesde la grammaire
‚ Symbolesimproductifs
‚ Aest improductif s’il n’y a pas demPT˚ tel que AÝÑ˚ m
‚ Symbolesinaccessibles
‚ Aest inaccessible s’il n’y a pas deαetβ tels queSÝÑ˚ αAβ
‚ ϵ-productions
‚ Uneϵ-production est une dérivation telle queAÝÑ˚ ϵ
‚ Production simple
‚ AÑBest une production simple si APNetBPN
ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans
ϵ-productions ni productions simples
Simplification
Simplifier une grammaire
ñ Supprimer les éléments inutilesde la grammaire
‚ Symbolesimproductifs
‚ Aest improductif s’il n’y a pas demPT˚ tel que AÝÑ˚ m
‚ Symbolesinaccessibles
‚ Aest inaccessible s’il n’y a pas deαetβ tels queSÝÑ˚ αAβ
‚ ϵ-productions
‚ Uneϵ-production est une dérivation telle queAÝÑ˚ ϵ
‚ Production simple
‚ AÑBest une production simple si APNetBPN
ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans
ϵ-productions ni productions simples
Simplification
Simplifier une grammaire
ñ Supprimer les éléments inutilesde la grammaire
‚ Symbolesimproductifs
‚ Aest improductif s’il n’y a pas demPT˚ tel que AÝÑ˚ m
‚ Symbolesinaccessibles
‚ Aest inaccessible s’il n’y a pas deαetβ tels queSÝÑ˚ αAβ
‚ ϵ-productions
‚ Uneϵ-production est une dérivation telle queAÝÑ˚ ϵ
‚ Production simple
‚ AÑBest une production simple si APNetBPN
ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans
ϵ-productions ni productions simples
Simplification
Simplifier une grammaire
ñ Supprimer les éléments inutilesde la grammaire
‚ Symbolesimproductifs
‚ Aest improductif s’il n’y a pas demPT˚ tel que AÝÑ˚ m
‚ Symbolesinaccessibles
‚ Aest inaccessible s’il n’y a pas deαetβ tels queSÝÑ˚ αAβ
‚ ϵ-productions
‚ Uneϵ-production est une dérivation telle queAÝÑ˚ ϵ
‚ Production simple
‚ AÑBest une production simple si APNetBPN
ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans
ϵ-productions ni productions simples
Simplification
Simplifier une grammaire
ñ Supprimer les éléments inutilesde la grammaire
‚ Symbolesimproductifs
‚ Aest improductif s’il n’y a pas demPT˚ tel que AÝÑ˚ m
‚ Symbolesinaccessibles
‚ Aest inaccessible s’il n’y a pas deαetβ tels queSÝÑ˚ αAβ
‚ ϵ-productions
‚ Uneϵ-production est une dérivation telle queAÝÑ˚ ϵ
‚ Production simple
‚ AÑBest une production simple si APNetBPN
ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans
ϵ-productions ni productions simples
Simplification
Simplifier une grammaire
ñ Supprimer les éléments inutilesde la grammaire
‚ Symbolesimproductifs
‚ Aest improductif s’il n’y a pas demPT˚ tel que AÝÑ˚ m
‚ Symbolesinaccessibles
‚ Aest inaccessible s’il n’y a pas deαetβ tels queSÝÑ˚ αAβ
‚ ϵ-productions
‚ Uneϵ-production est une dérivation telle queAÝÑ˚ ϵ
‚ Production simple
‚ AÑBest une production simple si APNetBPN
ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans
ϵ-productions ni productions simples
Simplification
Élimination des symboles improductifs
§ Calcul des symboles productifs
‚ SoitP0 =Heti= 1
‚ SoitP1 =tAPN,DαPT˚,AÑαPRu
‚ Tant quePi ‰Pi´1
‚ Pi+1=PiY tAPN,DαP(TYPi)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de NzP sont improductifs
ñ Enlever ces symboles et les règles dans lesquels ils figurent
Simplification
Élimination des symboles improductifs
§ Calcul des symboles productifs
‚ SoitP0 =Heti= 1
‚ SoitP1 =tAPN,DαPT˚,AÑαPRu
‚ Tant quePi ‰Pi´1
‚ Pi+1=PiY tAPN,DαP(TYPi)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de NzP sont improductifs
ñ Enlever ces symboles et les règles dans lesquels ils figurent
Simplification
Élimination des symboles inaccessibles
§ Calcul des symboles accessibles
‚ SoitC0 =H,C1 =tSueti= 1
‚ Tant queCi‰Ci´1
‚ Ci+1=CiY tAPN,Dα, βP(NYT)˚,XPCi,XÑαAβ PRu
ñ Les symboles de NzC sont inaccessibles
ñ Enlever ces symboles et les règles dans lesquels ils figurent
Simplification
Élimination des symboles inaccessibles
§ Calcul des symboles accessibles
‚ SoitC0 =H,C1 =tSueti= 1
‚ Tant queCi‰Ci´1
‚ Ci+1=CiY tAPN,Dα, βP(NYT)˚,XPCi,XÑαAβ PRu
ñ Les symboles de NzC sont inaccessibles
ñ Enlever ces symboles et les règles dans lesquels ils figurent
Simplification
Élimination des ϵ-productions
§ Calcul des symboles annulables
‚ SoitU0 =Het i= 1
‚ SoitU1 =tAPN,AÑϵPRu
‚ Tant quePi ‰Pi´1
‚ Ui+1 =UiY tAPN,DαP(Ui)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de Usont annulables
§ Modification de la grammaire
‚ Remplacer les règlesAÑαXβ où XPUparAÑαXβ|αβ (avec combinaisons possibles deX dans les règles)
‚ Supprimer toutes les règlesAÑϵ(sauf pourS)
‚ Supprimer toutes les règlesAÑA ñ Grammaire équivalente àϵ près
Simplification
Élimination des ϵ-productions
§ Calcul des symboles annulables
‚ SoitU0 =Het i= 1
‚ SoitU1 =tAPN,AÑϵPRu
‚ Tant quePi ‰Pi´1
‚ Ui+1 =UiY tAPN,DαP(Ui)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de Usont annulables
§ Modification de la grammaire
‚ Remplacer les règlesAÑαXβ où XPUparAÑαXβ|αβ (avec combinaisons possibles deX dans les règles)
‚ Supprimer toutes les règlesAÑϵ(sauf pourS)
‚ Supprimer toutes les règlesAÑA ñ Grammaire équivalente àϵ près
Simplification
Élimination des ϵ-productions
§ Calcul des symboles annulables
‚ SoitU0 =Het i= 1
‚ SoitU1 =tAPN,AÑϵPRu
‚ Tant quePi ‰Pi´1
‚ Ui+1 =UiY tAPN,DαP(Ui)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de Usont annulables
§ Modification de la grammaire
‚ Remplacer les règlesAÑαXβ où XPUparAÑαXβ|αβ (avec combinaisons possibles deX dans les règles)
‚ Supprimer toutes les règlesAÑϵ(sauf pourS)
‚ Supprimer toutes les règlesAÑA ñ Grammaire équivalente àϵ près
Simplification
Élimination des ϵ-productions
§ Calcul des symboles annulables
‚ SoitU0 =Het i= 1
‚ SoitU1 =tAPN,AÑϵPRu
‚ Tant quePi ‰Pi´1
‚ Ui+1 =UiY tAPN,DαP(Ui)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de Usont annulables
§ Modification de la grammaire
‚ Remplacer les règlesAÑαXβ où XPUparAÑαXβ|αβ (avec combinaisons possibles deX dans les règles)
‚ Supprimer toutes les règlesAÑϵ(sauf pourS)
‚ Supprimer toutes les règlesAÑA
ñ Grammaire équivalente àϵ près
Simplification
Élimination des ϵ-productions
§ Calcul des symboles annulables
‚ SoitU0 =Het i= 1
‚ SoitU1 =tAPN,AÑϵPRu
‚ Tant quePi ‰Pi´1
‚ Ui+1 =UiY tAPN,DαP(Ui)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de Usont annulables
§ Modification de la grammaire
‚ Remplacer les règlesAÑαXβ où XPUparAÑαXβ|αβ (avec combinaisons possibles deX dans les règles)
‚ Supprimer toutes les règlesAÑϵ(sauf pourS)
‚ Supprimer toutes les règlesAÑA
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
‚ Pour chaqueBÑβ, ajouterAÑβ
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
‚ Pour chaqueBÑβ, ajouterAÑβ
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
‚ Pour chaqueBÑβ, ajouterAÑβ
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
‚ Pour chaqueBÑβ, ajouterAÑβ
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
‚ Pour chaqueBÑβ, ajouterAÑβ
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
‚ Pour chaqueBÑβ, ajouterAÑβ
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
‚ Pour chaqueBÑβ, ajouterAÑβ
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑT|U 2. UÑaYb|V 3. VÑW 4. XÑW|a 5. YÑZ 6. ZÑc|ϵ
§ Étapes
‚ Symboles productifs :
‚ Symboles accessibles :
‚ ϵ-productions :
‚ Productions simples :