• 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

Un automate est co-déterministe si l’automate retourné (dérivé en invertissant tous les arcs et les ensembles des états initiaux et finaux) est

Montrer que tout langage local sur un alphabet Σ est reconnu par un automate local stan- dard, dont l’ensemble des états est Σ ∪ {}.. Réciproquement, montrer que tout langage

- Nous allons spécifier les tokens d’un langage de programmation en util- isant une notation formelle appelée le langage des expressions régulières. - Nous allons implémenter

- Nous avons vu qu’un langage est un ensemble de mots où un mot est une chaîne de symboles (caractères) d’un alphabet fini.. - Pour les langages réguliers (par exemple, le langage

 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

• 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

- Pour montrer que la grammaire n’est pas LR(0), on montre que l’AFD correspon- dant pour les préfixes viables a au moins un état contenant à la fois un élément shift et

– Un AFD LALR(1) est obtenu de l’AFD LR(1) en fusionnant les états identiques pour les éléments LR(0) (seuls les composantes lookahead diffèrent). – Une table d’analyse