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
Exercice 1 Exercice 1
Questions :
a. Donnez une un automate à pile acceptant le langage L(M) = {cRest 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}
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
}
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.
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.
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.
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
εoù
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.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.
Exercice 7 Exercice 7
Question : Soit L un langage hors contexte quelconque. Le langage
L
Rcontenant les mots de L renversés est-il toujours hors contexte?
Justifier.
Réponse :