• Aucun résultat trouvé

Langages hors-contexte

N/A
N/A
Protected

Academic year: 2022

Partager "Langages hors-contexte"

Copied!
98
0
0

Texte intégral

(1)

Langages hors-contexte

Damien Nouvel

(2)

Origines

Plan

1. Origines

2. Définitions 3. Dérivations 4. Simplification

(3)

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 !

(4)

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 !

(5)

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 !

(6)

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 !

(7)

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

(8)

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

(9)

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)

(10)

Définitions

Plan

1. Origines 2. Définitions 3. Dérivations 4. Simplification

(11)

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

(12)

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

(13)

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

(14)

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"

(15)

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"

(16)

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"

(17)

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é

(18)

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é

(19)

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é

(20)

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é

(21)

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é

(22)

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é

(23)

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

(24)

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

(25)

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

(26)

Dérivations

Plan

1. Origines

2. Définitions 3. Dérivations 4. Simplification

(27)

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α12 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

(28)

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α12 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

(29)

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α12 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

(30)

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)

(31)

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)

(32)

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)

(33)

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)

(34)

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)

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

Simplification

Plan

1. Origines

2. Définitions 3. Dérivations 4. Simplification

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

Simplification

Élimination des symboles improductifs

§ Calcul des symboles productifs

‚ SoitP0 =Heti= 1

‚ SoitP1 =tAPN,DαPT˚,AÑαPRu

‚ Tant quePiPi´1

Pi+1=PiY tAPN,P(TYPi)˚,AÑαPRu

iÐi+ 1

ñ Les symboles de NzP sont improductifs

ñ Enlever ces symboles et les règles dans lesquels ils figurent

(53)

Simplification

Élimination des symboles improductifs

§ Calcul des symboles productifs

‚ SoitP0 =Heti= 1

‚ SoitP1 =tAPN,DαPT˚,AÑαPRu

‚ Tant quePiPi´1

Pi+1=PiY tAPN,P(TYPi)˚,AÑαPRu

iÐi+ 1

ñ Les symboles de NzP sont improductifs

ñ Enlever ces symboles et les règles dans lesquels ils figurent

(54)

Simplification

Élimination des symboles inaccessibles

§ Calcul des symboles accessibles

‚ SoitC0 =H,C1 =tSueti= 1

‚ Tant queCiCi´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

(55)

Simplification

Élimination des symboles inaccessibles

§ Calcul des symboles accessibles

‚ SoitC0 =H,C1 =tSueti= 1

‚ Tant queCiCi´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

(56)

Simplification

Élimination des ϵ-productions

§ Calcul des symboles annulables

‚ SoitU0 =Het i= 1

‚ SoitU1 =tAPN,AÑϵPRu

‚ Tant quePiPi´1

Ui+1 =UiY tAPN,P(Ui)˚,AÑαPRu

iÐi+ 1

ñ Les symboles de Usont annulables

§ Modification de la grammaire

‚ Remplacer les règlesAÑαXβ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

(57)

Simplification

Élimination des ϵ-productions

§ Calcul des symboles annulables

‚ SoitU0 =Het i= 1

‚ SoitU1 =tAPN,AÑϵPRu

‚ Tant quePiPi´1

Ui+1 =UiY tAPN,P(Ui)˚,AÑαPRu

iÐi+ 1

ñ Les symboles de Usont annulables

§ Modification de la grammaire

‚ Remplacer les règlesAÑαXβ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

(58)

Simplification

Élimination des ϵ-productions

§ Calcul des symboles annulables

‚ SoitU0 =Het i= 1

‚ SoitU1 =tAPN,AÑϵPRu

‚ Tant quePiPi´1

Ui+1 =UiY tAPN,P(Ui)˚,AÑαPRu

iÐi+ 1

ñ Les symboles de Usont annulables

§ Modification de la grammaire

‚ Remplacer les règlesAÑαXβ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

(59)

Simplification

Élimination des ϵ-productions

§ Calcul des symboles annulables

‚ SoitU0 =Het i= 1

‚ SoitU1 =tAPN,AÑϵPRu

‚ Tant quePiPi´1

Ui+1 =UiY tAPN,P(Ui)˚,AÑαPRu

iÐi+ 1

ñ Les symboles de Usont annulables

§ Modification de la grammaire

‚ Remplacer les règlesAÑαXβ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

(60)

Simplification

Élimination des ϵ-productions

§ Calcul des symboles annulables

‚ SoitU0 =Het i= 1

‚ SoitU1 =tAPN,AÑϵPRu

‚ Tant quePiPi´1

Ui+1 =UiY tAPN,P(Ui)˚,AÑαPRu

iÐi+ 1

ñ Les symboles de Usont annulables

§ Modification de la grammaire

‚ Remplacer les règlesAÑαXβXPUparAÑαXβ|αβ (avec combinaisons possibles deX dans les règles)

‚ Supprimer toutes les règlesAÑϵ(sauf pourS)

‚ Supprimer toutes les règlesAÑA

(61)

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Ñβ

(62)

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Ñβ

(63)

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Ñβ

(64)

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Ñβ

(65)

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Ñβ

(66)

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Ñβ

(67)

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Ñβ

(68)

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

(69)

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 :

Références

Documents relatifs

Certes nous trouverons de jeunes mo- niteurs dévoués mais nous voudrions faire mieux qu'une éphémère coloni e de vacances ou qu'un centre aéré, nous voudrions

L'éducation a incontestablement dans la nation autant d' im- portance au moù1s que le sport et l'alpinisme; elle touche et intéresse - ou devrait intéresser - la

§ Langage de programmation Algol 1960 (J.. associativité, priorité

[r]

Multiplications et divisions (de gauche à droite si mélangées) 4.. http://jouons-aux-mathematiques.fr

Voici les niveaux de priorité sur les opérateurs du plus fort au plus faible

• Un tas avec clés gère des données avec priorités : – les données sont dans le tableau (ici tas) – les priorités sont dans un deuxième tableau

int *t(int *s[]); Fonction t prenant comme argument un tableau s de pointeurs sur entier et retournant un pointeur sur entier.. int (*t)[5]; Pointeur sur tableau de