• Aucun résultat trouvé

IFT313 IFT313 Introduction aux langages formels Introduction aux langages formels

N/A
N/A
Protected

Academic year: 2022

Partager "IFT313 IFT313 Introduction aux langages formels Introduction aux langages formels"

Copied!
9
0
0

Texte intégral

(1)

IFT313 IFT313

Introduction aux langages formels Introduction aux langages formels

Francis Bisson

Département d’informatique Université de Sherbrooke

Lab 3

Exercices sur les grammaires et

les automates à pile

(2)

Exercice 1 Exercice 1

 Questions :

a. Donnez une un automate à pile acceptant le langage L(M) = {cRest un mot du langage décrit par l’expression régulière (a|b)*}

b. Donnez une grammaire acceptant le même langage.

 Réponses :

a. M = (S,V,T,R,s,{p},$), tel que :

• S = {s,p}

• V = {A,B}

• T = {a,b,c}

• R = { (s, a, ε) (s, A), (s, b, ε) (s, B), (s, c, ε) (p, ε), (p, a, A) (p, ε), (p, b, B) (p, ε)}

b. G = (V,A,R,S) tel que : V = {S}

A = {a,b,c}

R = {S c | S aSa | S bSb}

(3)

Exercice 2 Exercice 2

 Question :

Donnez une grammaire générant le langage décrit par l’expression régulière a*b, sur l’alphabet {a,b}.

 Réponse :

G = ({S}, {a,b}, R, S), tel que : R = {

S aS | S b

}

(4)

Exercice 3 Exercice 3

 Questions :

a. Décrivez le langage généré par la grammaire G = ({S,A}, {a,b}, R, S), tel que

R = { S AS | A a | S  b }

b. Est-ce que la grammaire est régulière?

c. Est-ce que le langage accepté par la grammaire est régulier?

Si oui, donnez l’expression régulière correspondante.

Si non, expliquez pourquoi.

 Réponses :

a. Chaînes de ‘a’ terminés par un seul b.

b. Non.

c. Oui, le langage est régulier : a+b.

(5)

Exercice 3 (suite) Exercice 3 (suite)

 Conclusion :

 Les grammaires réguliers génèrent des langages réguliers.

 Mais il peut y avoir aussi des grammaires non régulières qui génèrent un langage régulier.

 Dans ce dernier cas, on peut trouver une grammaire régulière qui accepte le même langage. Ceci est vrai parce que tout langage régulier est généré par une grammaire régulière.

(6)

Exercice 4 Exercice 4

 Questions :

a. Donnez un automate à pile non déterministe qui accepte le langage généré par la grammaire :

G = ({S,A}, {a,b}, R, S), tel que : R = { S  AS | A  a | S  b }

b. Même question mais avec un automate à pile déterministe.

 Réponse :

a. La grammaire génère le langage a*b.

M = ({s,p},{},{a,b},R,s,{p},$) :

• R = { (s, a, ε)  (s, ε), (s, b, ε) (p, ε)}

a. Même solution qu’au point a.

(7)

Exercice 5 Exercice 5

 Question : Soient les langages générés par une grammaire G dont les productions ont une des formes suivantes

S wB, A Bw, A  w, A 

ε

A, B sont des non terminaux et w est une chaine de terminaux.

La classe de ces langages coïncide-t-elle avec la classe des langages réguliers ?

 Réponse : Non.

La grammaire

S aB | B Sb | S 

ε est de la forme proposée et génère le langage anbn qui n’est pas régulier.

(8)

Exercice 6 Exercice 6

 Question : Supposons qu’un langage L soit accepté par un automate à pile A. S’il existe un entier n tel que l’exécution de A sur un mot d’entrée

quelconque w est telle que la pile ne contient jamais plus de n symboles, que peut-on en conclure à propos de L?

 Est-ce que L est régulier ou non? Si oui, quel serait l’automate fini correspondant à A? Si non, expliquez pourquoi.

 Réponse : L est un langage régulier parce que le nombre de configuration de l’automate A est borné, on pourrait donc le simuler par un automate fini dont les états correspondent aux configurations possibles de l’automate.

Soit A=(S,V,A,R,s,$,F) l’automate à pile pour L. L’automate fini correspondant est N=(Q×A*n, A, RN, s×{$}, F×A*n) tel que :

A*n=Ui≤n Ai (c-à-d., ensemble des sous-chaînes de longueur inférieur ou égal à n sur l’alphabet A).

RN est défini comme suit : ((p,α),σ, (q,β)) est une transitions dans RN si et seulement si ((p, α, σ), (q, β)) est une transition de l’automate A.

(9)

Exercice 7 Exercice 7

 Question : Soit L un langage hors contexte quelconque. Le langage

L

R

contenant les mots de L renversés est-il toujours hors contexte?

Justifier.

 Réponse :

Oui.

La grammaire pour le langage L

R

en inversant les parties droites des

règles de production.

Références

Documents relatifs

- Pour analyser la syntaxe d’une grammaire hors-contexte, nous ajoutons une pile à un automate fini pour obtenir un modèle de programmes plus puissant connu sous le nom de

 Pour ce faire la partie gauche de la production (un non-terminal) est enlevée de la pile et remplacée par la partie droite de la production. (q, ε, A)  (q, a) pour chaque

- On vient de voir qu’en calculant First(S) ou First(XYS) on doit tenir compte des non-terminaux qui pourraient dériver la chaîne vide et de ceux qui pourraient les suivre dans

 Parce que les deux règles ont la même fonction d’analyse (c-à-d., la fonction correspondant au non terminal dans la partie gauche de chaque production).. Si elle partagent le

– Si le symbole est un non terminal, l’attribut pourrait être une donnée calculée en utilisant les actions sémantiques. – Une grammaire avec des attributs est appelée

• Pour aller au-delà, il faut utiliser d’autres outils ou des méthodes adhoc pour évaluer les attributs (avec l’aide

• Pouvoir programmer un analyseur syntaxique récursif pour une grammaire donnée. • Connaître les fondements d’un générateur d’analyseur syntaxique LL tel

AFD pour préfixes viables, avec état initial I0 et fonction de transition goto Initialement la pile contient I0.. L’état I2 contient élément Shift (T ® T.*F) et un élément