100% ont trouvé ce document utile (1 vote)
244 vues2 pages

DS 2023

Transféré par

Baha Jbali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
244 vues2 pages

DS 2023

Transféré par

Baha Jbali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

DEVOIR SURVEILLE

Semestre : 1 2

Session : Principale Rattrapage

Module : Théorie des langages et compilation


Enseignant(s) : Equipe TLA
Classe(s) : 3A31 ..3A61
Documents autorisés : OUI NON Nombre de pages : 2
Calculatrice autorisée : OUI NON Internet autorisée : OUI NON
Date : 08/11/2023 Heure 13h30 Durée : 1h

Exercice 1 : (5 pts)

1. Soit l’alphabet  = {a,b}. Construire, en précisant toutes les étapes, un automate qui
reconnait tous les mots sur * sauf ceux qui contiennent la séquence ab. (4 pts)
2. Donner l’expression régulière correspondante. (1 pt)

Exercice 2 (7 pts) :

Soit l’expression régulière suivante sur l’alphabet  = {a,b}: 𝑏 ∗ 𝑎𝑏(𝑏|𝑎+ )


1. Donner un AFN reconnaissant ce langage avec l'algorithme de Thompson. (2 pts)
2. Donner l’automate fini déterministe équivalent. (3 pts)
3. Minimiser cet automate. (2 pt)

Exercice 3 (7 pts) :

1. Donner les expressions régulières correspondantes aux langages suivants :


a. Le langage L1 de tous les mots 𝑤 construits sur {a,b} et dont la |𝑤| = 3 . (0.5 pt)
b. Le langage L2 de tous les mots les mots formés d’alternance de a et b (1.5 pt)
c. Le langage L3 de tous les mots sur {a,b}* contenant un nombre de a divisible par 3
(1.5 pt)

1
2. Compléter les deux parties du fichier de spécification Flex suivant pour construire un
analyseur lexical reconnaissant les trois langages L1, L2 et L3 et permettant de retourner sur
la console, à chaque identification d’un lexème, la chaine reconnue ainsi que la description.
(1.5 pt)

…………………………………………………
…………………………………………………
…………………………………………………

%%

{………………} printf(…………………………………………………………………………);
{………………} printf(…………………………………………………………………………);
{………………} printf(…………………………………………………………………………);

%%
int main(void){
yylex() ;
return 0 ;
}

3. Donner le résultat d’exécution de l’analyseur lexical sur les instructions suivantes : (2 pts)
a. 𝑎𝑏𝑏𝑎𝑎𝑏𝑎𝑏𝑎
b. 𝑏𝑏𝑎𝑏𝑎𝑏𝑏𝑎𝑏𝑏𝑎
c. 𝑎𝑏𝑎𝑎𝑏𝑏𝑎𝑏
d. ababbba

Bon Travail

Vous aimerez peut-être aussi