• Aucun résultat trouvé

Langages formels et analyse syntaxique CM3 : Forme normale de Chomsky et automate à pile

N/A
N/A
Protected

Academic year: 2022

Partager "Langages formels et analyse syntaxique CM3 : Forme normale de Chomsky et automate à pile"

Copied!
81
0
0

Texte intégral

(1)

Langages formels et analyse syntaxique

CM3 : Forme normale de Chomsky et automate à pile

Timothée Bernard 2 octobre 2020

Université de Paris

(2)

Forme normale de Chomsky (CNF)

(3)

À lire

• Fin du chapitre 9 du polycopié d’Yvon et Demaille (2016).

1

(4)

À lire

• Fin du chapitre 9 du polycopié d’Yvon et Demaille (2016).

(5)

Grammaire (CF) en forme normale de Chomsky

Règles toutes de l’une des formes suivantes :

A→aa∈T;

A→BCB,C∈N;

S→ϵ(oùSest l’axiome).

On peut toujours transformer une grammaire CF en une grammaire en forme normale de Chomsky faiblement équivalente.

2

(6)

Grammaire (CF) en forme normale de Chomsky Règles toutes de l’une des formes suivantes :

A→aa∈T;

A→BCB,C∈N;

S→ϵ(oùSest l’axiome).

On peut toujours transformer une grammaire CF en une grammaire en forme normale de Chomsky faiblement équivalente.

(7)

Grammaire (CF) en forme normale de Chomsky Règles toutes de l’une des formes suivantes :

A→aa∈T;

A→BCB,C∈N;

S→ϵ(oùSest l’axiome).

On peut toujours transformer une grammaire CF en une grammaire en forme normale de Chomsky faiblement équivalente.

2

(8)

Grammaire (CF) en forme normale de Chomsky Règles toutes de l’une des formes suivantes :

A→aa∈T;

A→BCB,C∈N;

S→ϵ(oùSest l’axiome).

On peut toujours transformer une grammaire CF en une grammaire en forme normale de Chomsky faiblement équivalente.

(9)

Grammaire (CF) en forme normale de Chomsky Règles toutes de l’une des formes suivantes :

A→aa∈T;

A→BCB,C∈N;

S→ϵ(oùSest l’axiome).

On peut toujours transformer une grammaire CF en une grammaire en forme normale de Chomsky faiblement équivalente.

2

(10)

Grammaire (CF) en forme normale de Chomsky Règles toutes de l’une des formes suivantes :

A→aa∈T;

A→BCB,C∈N;

S→ϵ(oùSest l’axiome).

On peut toujours transformer une grammaire CF en une grammaire en forme normale de Chomsky faiblement équivalente.

(11)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

3

(12)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

(13)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

3

(14)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

(15)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

3

(16)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

(17)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

3

(18)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

(19)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

3

(20)

• Processus en deux étapes.

• Attention : on suppose que la grammaire ne contient ni ϵ-transition ni production singulière (typiquement, on utilise d’abord l’algorithme pour rendre la grammaire propre).

• Première étape :

∀a∈Σ, on rajoute un non-terminalXaainsi qu’une règleXa→a;

∀(A→w)∈P|w| ≥2, on remplace cette règle parA→ww est obtenu en substituant danswtout terminalaparXa.

• Deuxième étape : pour toute règleA→B1B2...Bmavecm≥3,

• on ajoute des nouveaux non-terminauxC1,C2, ...,Cm−2;

• on remplace la règle parA→B1C1;

∀i≤m−3, on ajoute aussiCi→Bi+1Ci+1;

• on ajoute enfinCm−2→Bm−1Bm.

(21)

Exemple

Si la grammaire contenait à l’origine la règleA→a B C d E,

• après la première étape, on auraA→XaB C XdE;

• après la seconde étape :

A→XaC1;

C1→B C2;

C2→C C3;

C3→XdE.

4

(22)

Exemple

Si la grammaire contenait à l’origine la règleA→a B C d E,

• après la première étape, on auraA→XaB C XdE;

• après la seconde étape :

A→XaC1;

C1→B C2;

C2→C C3;

C3→XdE.

(23)

Exemple

Si la grammaire contenait à l’origine la règleA→a B C d E,

• après la première étape, on auraA→XaB C XdE;

• après la seconde étape :

A→XaC1;

C1→B C2;

C2→C C3;

C3→XdE.

4

(24)

Exemple

Si la grammaire contenait à l’origine la règleA→a B C d E,

• après la première étape, on auraA→XaB C XdE;

• après la seconde étape :

A→XaC1;

C1→B C2;

C2→C C3;

C3→XdE.

(25)

Exemple

Si la grammaire contenait à l’origine la règleA→a B C d E,

• après la première étape, on auraA→XaB C XdE;

• après la seconde étape :

A→XaC1;

C1→B C2;

C2→C C3;

C3→XdE.

4

(26)

Exemple

Si la grammaire contenait à l’origine la règleA→a B C d E,

• après la première étape, on auraA→XaB C XdE;

• après la seconde étape :

A→XaC1;

C1→B C2;

C2→C C3;

C3→XdE.

(27)

Exemple

Si la grammaire contenait à l’origine la règleA→a B C d E,

• après la première étape, on auraA→XaB C XdE;

• après la seconde étape :

A→XaC1;

C1→B C2;

C2→C C3;

C3→XdE.

4

(28)

• Dans le polycopié sont mentionnées deux formes normales, la forme normale de Chomsky et la forme normale de Greibach.

• On ne va s’intéresser qu’à la première, donc vous pouvez ignorer la section 9.2.2.,Forme normale de Greibach.

(29)

• Dans le polycopié sont mentionnées deux formes normales, la forme normale de Chomsky et la forme normale de Greibach.

• On ne va s’intéresser qu’à la première, donc vous pouvez ignorer la section 9.2.2.,Forme normale de Greibach.

5

(30)

Automate à pile

(31)

À lire

• Le morceau de polycopié intituléAutomates à pile, P. Asmilisur Moodle.

6

(32)

À lire

• Le morceau de polycopié intituléAutomates à pile, P. Asmilisur Moodle.

(33)

• Les automates à pile sont aux langages hors-contexte ce que les automates finis sont aux langages réguliers.

• On peut voir les automates à pile comme une extension des automates finis, avec une pile de symboles.

• Au début du calcul, la pile ne contient qu’un symbole particulier, le symbole de fond de pileZ0.

• À chaque transition on va pouvoir empiler ou dépiler des symboles, ce qui affecte le haut de la pile.

• Les transitions ne dépendent plus uniquement de l’état de l’automate et du symbole suivant dans le mot à reconnaître, mais éventuellement aussi du symbole au sommet de la pile.

7

(34)

• Les automates à pile sont aux langages hors-contexte ce que les automates finis sont aux langages réguliers.

• On peut voir les automates à pile comme une extension des automates finis, avec une pile de symboles.

• Au début du calcul, la pile ne contient qu’un symbole particulier, le symbole de fond de pileZ0.

• À chaque transition on va pouvoir empiler ou dépiler des symboles, ce qui affecte le haut de la pile.

• Les transitions ne dépendent plus uniquement de l’état de l’automate et du symbole suivant dans le mot à reconnaître, mais éventuellement aussi du symbole au sommet de la pile.

(35)

• Les automates à pile sont aux langages hors-contexte ce que les automates finis sont aux langages réguliers.

• On peut voir les automates à pile comme une extension des automates finis, avec une pile de symboles.

• Au début du calcul, la pile ne contient qu’un symbole particulier, le symbole de fond de pileZ0.

• À chaque transition on va pouvoir empiler ou dépiler des symboles, ce qui affecte le haut de la pile.

• Les transitions ne dépendent plus uniquement de l’état de l’automate et du symbole suivant dans le mot à reconnaître, mais éventuellement aussi du symbole au sommet de la pile.

7

(36)

• Les automates à pile sont aux langages hors-contexte ce que les automates finis sont aux langages réguliers.

• On peut voir les automates à pile comme une extension des automates finis, avec une pile de symboles.

• Au début du calcul, la pile ne contient qu’un symbole particulier, le symbole de fond de pileZ0.

• À chaque transition on va pouvoir empiler ou dépiler des symboles, ce qui affecte le haut de la pile.

• Les transitions ne dépendent plus uniquement de l’état de l’automate et du symbole suivant dans le mot à reconnaître, mais éventuellement aussi du symbole au sommet de la pile.

(37)

• Les automates à pile sont aux langages hors-contexte ce que les automates finis sont aux langages réguliers.

• On peut voir les automates à pile comme une extension des automates finis, avec une pile de symboles.

• Au début du calcul, la pile ne contient qu’un symbole particulier, le symbole de fond de pileZ0.

• À chaque transition on va pouvoir empiler ou dépiler des symboles, ce qui affecte le haut de la pile.

• Les transitions ne dépendent plus uniquement de l’état de l’automate et du symbole suivant dans le mot à reconnaître, mais éventuellement aussi du symbole au sommet de la pile.

7

(38)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

(39)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

8

(40)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

(41)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

8

(42)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

(43)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

8

(44)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

(45)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

8

(46)

• Transition :δ(S1,a,b) = (S2,w)

• Si :

• on est dans l’étatS1,

• on lit le symboleadans l’entrée,

• le symbolebest au sommet de la pile (ou aucune condition si b=ϵ),

• Alors :

• on passe dans l’étatS2,

• on retirebdu sommet de la pile et on le remplace parw(le premier caractère dewest alors au sommet de la pile).

• Représentation :S1 a,b→w S2

(47)

Exemple

Figure 1 –Automate à pile reconnaissant{0n1n|n∈N}(depuis Wikipédia).

9

(48)

• (Formellement, un automate à pile est un sextuplet (Q,X,∆, δ,q0,Z0,F), vous devez connaître cette définition.)

• Un automate fini peut être vu comme un automate à pile qui n’utilise jamais sa pile.

• Que veut dire reconnaître un mot pour un automate à pile ?

• Pour les automates finis : on est dans un état final après avoir lu tout le mot.

• Pour un automate à pile, plusieurs possibilités.

(49)

• (Formellement, un automate à pile est un sextuplet (Q,X,∆, δ,q0,Z0,F), vous devez connaître cette définition.)

• Un automate fini peut être vu comme un automate à pile qui n’utilise jamais sa pile.

• Que veut dire reconnaître un mot pour un automate à pile ?

• Pour les automates finis : on est dans un état final après avoir lu tout le mot.

• Pour un automate à pile, plusieurs possibilités.

10

(50)

• (Formellement, un automate à pile est un sextuplet (Q,X,∆, δ,q0,Z0,F), vous devez connaître cette définition.)

• Un automate fini peut être vu comme un automate à pile qui n’utilise jamais sa pile.

• Que veut dire reconnaître un mot pour un automate à pile ?

• Pour les automates finis : on est dans un état final après avoir lu tout le mot.

• Pour un automate à pile, plusieurs possibilités.

(51)

• (Formellement, un automate à pile est un sextuplet (Q,X,∆, δ,q0,Z0,F), vous devez connaître cette définition.)

• Un automate fini peut être vu comme un automate à pile qui n’utilise jamais sa pile.

• Que veut dire reconnaître un mot pour un automate à pile ?

• Pour les automates finis : on est dans un état final après avoir lu tout le mot.

• Pour un automate à pile, plusieurs possibilités.

10

(52)

• (Formellement, un automate à pile est un sextuplet (Q,X,∆, δ,q0,Z0,F), vous devez connaître cette définition.)

• Un automate fini peut être vu comme un automate à pile qui n’utilise jamais sa pile.

• Que veut dire reconnaître un mot pour un automate à pile ?

• Pour les automates finis : on est dans un état final après avoir lu tout le mot.

• Pour un automate à pile, plusieurs possibilités.

(53)

Trois types de configurations d’acceptation

1. Acceptation par état final : un peu comme pour les automates finis, on accepte si on se retrouve dans un état final après avoir lu tout le mot, et ce quelque soit le contenu de la pile.

2. Acceptation par pile vide : on accepte si la pile est vide une fois qu’on a lu tout le mot, et ce quelque soit l’état (final ou non). 3. Acceptation mixte : on accepte si on se retrouve dans un état

final avec une pile vide après avoir lu tout le mot.

• Quand vous présentez un automate à pile, il faut absolument indiquer quel type d’acceptation vous utilisez.

• Ces trois conditions ont le même pouvoir expressif, mais pour un automate particulier,ça a de l’importance.

• La classe des langages reconnus par les automates à pile est la même que celle des langages générés par les grammaires hors-contexte.

11

(54)

Trois types de configurations d’acceptation

1. Acceptation par état final : un peu comme pour les automates finis, on accepte si on se retrouve dans un état final après avoir lu tout le mot, et ce quelque soit le contenu de la pile.

2. Acceptation par pile vide : on accepte si la pile est vide une fois qu’on a lu tout le mot, et ce quelque soit l’état (final ou non).

3. Acceptation mixte : on accepte si on se retrouve dans un état final avec une pile vide après avoir lu tout le mot.

• Quand vous présentez un automate à pile, il faut absolument indiquer quel type d’acceptation vous utilisez.

• Ces trois conditions ont le même pouvoir expressif, mais pour un automate particulier,ça a de l’importance.

• La classe des langages reconnus par les automates à pile est la même que celle des langages générés par les grammaires hors-contexte.

(55)

Trois types de configurations d’acceptation

1. Acceptation par état final : un peu comme pour les automates finis, on accepte si on se retrouve dans un état final après avoir lu tout le mot, et ce quelque soit le contenu de la pile.

2. Acceptation par pile vide : on accepte si la pile est vide une fois qu’on a lu tout le mot, et ce quelque soit l’état (final ou non).

3. Acceptation mixte : on accepte si on se retrouve dans un état final avec une pile vide après avoir lu tout le mot.

• Quand vous présentez un automate à pile, il faut absolument indiquer quel type d’acceptation vous utilisez.

• Ces trois conditions ont le même pouvoir expressif, mais pour un automate particulier,ça a de l’importance.

• La classe des langages reconnus par les automates à pile est la même que celle des langages générés par les grammaires hors-contexte.

11

(56)

Trois types de configurations d’acceptation

1. Acceptation par état final : un peu comme pour les automates finis, on accepte si on se retrouve dans un état final après avoir lu tout le mot, et ce quelque soit le contenu de la pile.

2. Acceptation par pile vide : on accepte si la pile est vide une fois qu’on a lu tout le mot, et ce quelque soit l’état (final ou non).

3. Acceptation mixte : on accepte si on se retrouve dans un état final avec une pile vide après avoir lu tout le mot.

• Quand vous présentez un automate à pile, il faut absolument indiquer quel type d’acceptation vous utilisez.

• Ces trois conditions ont le même pouvoir expressif, mais pour un automate particulier,ça a de l’importance.

• La classe des langages reconnus par les automates à pile est la même que celle des langages générés par les grammaires hors-contexte.

(57)

Trois types de configurations d’acceptation

1. Acceptation par état final : un peu comme pour les automates finis, on accepte si on se retrouve dans un état final après avoir lu tout le mot, et ce quelque soit le contenu de la pile.

2. Acceptation par pile vide : on accepte si la pile est vide une fois qu’on a lu tout le mot, et ce quelque soit l’état (final ou non).

3. Acceptation mixte : on accepte si on se retrouve dans un état final avec une pile vide après avoir lu tout le mot.

• Quand vous présentez un automate à pile, il faut absolument indiquer quel type d’acceptation vous utilisez.

• Ces trois conditions ont le même pouvoir expressif, mais pour un automate particulier,ça a de l’importance.

• La classe des langages reconnus par les automates à pile est la même que celle des langages générés par les grammaires hors-contexte.

11

(58)

Trois types de configurations d’acceptation

1. Acceptation par état final : un peu comme pour les automates finis, on accepte si on se retrouve dans un état final après avoir lu tout le mot, et ce quelque soit le contenu de la pile.

2. Acceptation par pile vide : on accepte si la pile est vide une fois qu’on a lu tout le mot, et ce quelque soit l’état (final ou non).

3. Acceptation mixte : on accepte si on se retrouve dans un état final avec une pile vide après avoir lu tout le mot.

• Quand vous présentez un automate à pile, il faut absolument indiquer quel type d’acceptation vous utilisez.

• Ces trois conditions ont le même pouvoir expressif, mais pour un automate particulier,ça a de l’importance.

• La classe des langages reconnus par les automates à pile est la même que celle des langages générés par les grammaires

(59)

• Dans le polycopié, vous n’êtes pas obligé·e·s de lire ce qui commence à la section 1.3.1,PDG→CFG(mais vous devez quand même connaître l’introduction de la section 1.3).

12

(60)

Devoir à rendre sur la complexité

des langages naturels

(61)

• Vous devez lire l’article de Chomsky (1956) que vous trouverez sur Moodle.

• Écrire un résumé/commentaire de l’article.

• Moins de 800 mots (il s’agit vraiment d’une limite supérieure, ne visez pas 800 mots).

• Vous avez jusqu’au dimanche 18/10/2020 pour m’envoyer votre travail dans un fichier pdf à l’adresse suivante :

[email protected].

13

(62)

• Vous devez lire l’article de Chomsky (1956) que vous trouverez sur Moodle.

• Écrire un résumé/commentaire de l’article.

• Moins de 800 mots (il s’agit vraiment d’une limite supérieure, ne visez pas 800 mots).

• Vous avez jusqu’au dimanche 18/10/2020 pour m’envoyer votre travail dans un fichier pdf à l’adresse suivante :

[email protected].

(63)

• Vous devez lire l’article de Chomsky (1956) que vous trouverez sur Moodle.

• Écrire un résumé/commentaire de l’article.

• Moins de 800 mots (il s’agit vraiment d’une limite supérieure, ne visez pas 800 mots).

• Vous avez jusqu’au dimanche 18/10/2020 pour m’envoyer votre travail dans un fichier pdf à l’adresse suivante :

[email protected].

13

(64)

• Vous devez lire l’article de Chomsky (1956) que vous trouverez sur Moodle.

• Écrire un résumé/commentaire de l’article.

• Moins de 800 mots (il s’agit vraiment d’une limite supérieure, ne visez pas 800 mots).

• Vous avez jusqu’au dimanche 18/10/2020 pour m’envoyer votre travail dans un fichier pdf à l’adresse suivante :

[email protected].

(65)

Vocabulaire

countable set: ensemble d’éléments que l’on peut numéroter (comme les entiers)

uncountable set: ensemble d’éléments trop nombreux pour être numérotés (comme les nombres réels)

finite state Markov process:

• correspond à un automate fini avec éventuellement des probabilités associées aux transitions ;

• là, vu comme un système de génération plutôt que de reconnaissance ;

• « PCFGs extend context-free grammars similar to how hidden Markov models extend regular grammars. » (Wikipedia)

14

(66)

Vocabulaire

countable set: ensemble d’éléments que l’on peut numéroter (comme les entiers)

uncountable set: ensemble d’éléments trop nombreux pour être numérotés (comme les nombres réels)

finite state Markov process:

• correspond à un automate fini avec éventuellement des probabilités associées aux transitions ;

• là, vu comme un système de génération plutôt que de reconnaissance ;

• « PCFGs extend context-free grammars similar to how hidden Markov models extend regular grammars. » (Wikipedia)

(67)

Vocabulaire

countable set: ensemble d’éléments que l’on peut numéroter (comme les entiers)

uncountable set: ensemble d’éléments trop nombreux pour être numérotés (comme les nombres réels)

finite state Markov process:

• correspond à un automate fini avec éventuellement des probabilités associées aux transitions ;

• là, vu comme un système de génération plutôt que de reconnaissance ;

• « PCFGs extend context-free grammars similar to how hidden Markov models extend regular grammars. » (Wikipedia)

14

(68)

Vocabulaire

countable set: ensemble d’éléments que l’on peut numéroter (comme les entiers)

uncountable set: ensemble d’éléments trop nombreux pour être numérotés (comme les nombres réels)

finite state Markov process:

• correspond à un automate fini avec éventuellement des probabilités associées aux transitions ;

• là, vu comme un système de génération plutôt que de reconnaissance ;

• « PCFGs extend context-free grammars similar to how hidden Markov models extend regular grammars. » (Wikipedia)

(69)

Vocabulaire

countable set: ensemble d’éléments que l’on peut numéroter (comme les entiers)

uncountable set: ensemble d’éléments trop nombreux pour être numérotés (comme les nombres réels)

finite state Markov process:

• correspond à un automate fini avec éventuellement des probabilités associées aux transitions ;

• là, vu comme un système de génération plutôt que de reconnaissance ;

• « PCFGs extend context-free grammars similar to how hidden Markov models extend regular grammars. » (Wikipedia)

14

(70)

Vocabulaire

countable set: ensemble d’éléments que l’on peut numéroter (comme les entiers)

uncountable set: ensemble d’éléments trop nombreux pour être numérotés (comme les nombres réels)

finite state Markov process:

• correspond à un automate fini avec éventuellement des probabilités associées aux transitions ;

• là, vu comme un système de génération plutôt que de reconnaissance ;

• « PCFGs extend context-free grammars similar to how hidden Markov models extend regular grammars. » (Wikipedia)

(71)

Vocabulaire

countable set: ensemble d’éléments que l’on peut numéroter (comme les entiers)

uncountable set: ensemble d’éléments trop nombreux pour être numérotés (comme les nombres réels)

finite state Markov process:

• correspond à un automate fini avec éventuellement des probabilités associées aux transitions ;

• là, vu comme un système de génération plutôt que de reconnaissance ;

• « PCFGs extend context-free grammars similar to how hidden Markov models extend regular grammars. » (Wikipedia)

14

(72)

Conseils

• Si l’on bute durant la lecture, il est parfois bien de continuer jusqu’à la fin de la section puis de revenir sur le passage difficile. Notamment parce que certaines définitions sont formulées de manière assez obscure (avec des notations inconnues) mais sont illustrées un peu plus loin.

• Ne vous attachez pas trop aux détails techniques. Il faut surtout comprendre à quoi sert ce qui est défini.

(73)

Conseils

• Si l’on bute durant la lecture, il est parfois bien de continuer jusqu’à la fin de la section puis de revenir sur le passage difficile. Notamment parce que certaines définitions sont formulées de manière assez obscure (avec des notations inconnues) mais sont illustrées un peu plus loin.

• Ne vous attachez pas trop aux détails techniques. Il faut surtout comprendre à quoi sert ce qui est défini.

15

(74)

Conseils

• Si l’on bute durant la lecture, il est parfois bien de continuer jusqu’à la fin de la section puis de revenir sur le passage difficile. Notamment parce que certaines définitions sont formulées de manière assez obscure (avec des notations inconnues) mais sont illustrées un peu plus loin.

• Ne vous attachez pas trop aux détails techniques. Il faut surtout comprendre à quoi sert ce qui est défini.

(75)

Conseils

• Dans votre texte, essayez de répondre notamment aux questions suivantes (éventuellement en citant le texte).

• De quoi parle le texte ? Quelles sont les notions importantes ? Quels sont les résultats principaux ?

• D’après Chomsky, pour le ou la linguiste, à quoi peut servir de déterminer des grammaires ?

• Quels liens peut-on trouver entre grammaticalité et fréquence de production ?(vous avez le droit de donner votre avis et de commenter le texte)

• Quel(s) phénomène(s) linguistique(s) Chomsky arrive-t-il à bien modéliser ? À quoi cela sert-il dans son argumentation ?

16

(76)

Conseils

• Dans votre texte, essayez de répondre notamment aux questions suivantes (éventuellement en citant le texte).

• De quoi parle le texte ? Quelles sont les notions importantes ? Quels sont les résultats principaux ?

• D’après Chomsky, pour le ou la linguiste, à quoi peut servir de déterminer des grammaires ?

• Quels liens peut-on trouver entre grammaticalité et fréquence de production ?(vous avez le droit de donner votre avis et de commenter le texte)

• Quel(s) phénomène(s) linguistique(s) Chomsky arrive-t-il à bien modéliser ? À quoi cela sert-il dans son argumentation ?

(77)

Conseils

• Dans votre texte, essayez de répondre notamment aux questions suivantes (éventuellement en citant le texte).

• De quoi parle le texte ? Quelles sont les notions importantes ? Quels sont les résultats principaux ?

• D’après Chomsky, pour le ou la linguiste, à quoi peut servir de déterminer des grammaires ?

• Quels liens peut-on trouver entre grammaticalité et fréquence de production ?(vous avez le droit de donner votre avis et de commenter le texte)

• Quel(s) phénomène(s) linguistique(s) Chomsky arrive-t-il à bien modéliser ? À quoi cela sert-il dans son argumentation ?

16

(78)

Conseils

• Dans votre texte, essayez de répondre notamment aux questions suivantes (éventuellement en citant le texte).

• De quoi parle le texte ? Quelles sont les notions importantes ? Quels sont les résultats principaux ?

• D’après Chomsky, pour le ou la linguiste, à quoi peut servir de déterminer des grammaires ?

• Quels liens peut-on trouver entre grammaticalité et fréquence de production ?(vous avez le droit de donner votre avis et de commenter le texte)

• Quel(s) phénomène(s) linguistique(s) Chomsky arrive-t-il à bien modéliser ? À quoi cela sert-il dans son argumentation ?

(79)

Conseils

• Dans votre texte, essayez de répondre notamment aux questions suivantes (éventuellement en citant le texte).

• De quoi parle le texte ? Quelles sont les notions importantes ? Quels sont les résultats principaux ?

• D’après Chomsky, pour le ou la linguiste, à quoi peut servir de déterminer des grammaires ?

• Quels liens peut-on trouver entre grammaticalité et fréquence de production ?(vous avez le droit de donner votre avis et de commenter le texte)

• Quel(s) phénomène(s) linguistique(s) Chomsky arrive-t-il à bien modéliser ? À quoi cela sert-il dans son argumentation ?

16

(80)

Bon travail !

(81)

Références i

Références

Chomsky, N. (sept. 1956). « Three models for the description of language ».In :IRE Transactions on Information Theory2.3, p. 113-124. doi :10.1109/TIT.1956.1056813. url : https://www.princeton.edu/~wbialek/rome/refs/

chomsky_3models.pdf.

Yvon, François et Akim Demaille (2016). « Théories des langages ».

notes de cours. url :

https://www.lrde.epita.fr/~akim/thl/lecture- notes/theorie-des-langages-2.pdf.

18

Références

Documents relatifs

• En section 4.4 L’automate canonique, vous pouvez vous concentrer sur l’algorithme de minimisation (en 4.4.3 ; nécessite de connaître aussi la définition de

• On peut supprimer les productions et symboles inutiles sans affecter le langage généré.. • Algorithme en deux

• On suppose une capacité de mémoire infinie afin de pouvoir étudier la régularité (au sens usuel) des phénomènes syntaxiques et rendre la notion de structure syntaxique

• si ce n’est pas possible (parce qu’il s’agit d’un terminal ou parce que les différentes réécritures ne mènent à rien), c’est que la branche n’est pas viable.. •

(Il est vous permis d’utiliser, sans preuve, tout r´esultat vu dans le cadre du

b) Repr´esenter la table de multiplication du mono¨ıde syntaxique de L. En particulier, d´eterminer les classes d’´equivalence de ≡ L qui contiennent une infinit´e

Pr´ e-requis : Initiation ` a l’informatique (IF1), Types de donn´ ees et objets (TO2), et notions d’alg` ebre acquises dans les diff´ erents enseignements des se- mestres pr´

En supposant que la temp´ erature dans le steak reste uniforme et ne d´ epend que du temps, ´ ecrire l’´ equation de bilan thermique pour ce steak re- froidi par convection