0% ont trouvé ce document utile (0 vote)
94 vues1 page

Série TD N°01: Exercice 01

Transféré par

Younes Boucherif
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
0% ont trouvé ce document utile (0 vote)
94 vues1 page

Série TD N°01: Exercice 01

Transféré par

Younes Boucherif
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

Université A/ Mira de Béjaia.

janvier 2021
Département d’informatique
3eme année Licence académique
Module Compilation

Série TD N°01
Exercice 01 :
Soit le programme suivant :

function 1factorielle(n: integer): integer$;


begin!
if n <= 1 then
factorielle := 1,1,
else
factorielle := n*fact(n - 1);
end;
1. Corriger les erreurs lexicales du programme ;
2. Identifier les lexèmes et préciser les modèles qui dénotent les unités lexicales du programme. Dresser la table des
symboles.

Exercice 02 :
Pour chacun des fragments du programme Java suivant, identifiez le type d’erreur : Lexicale (détectée par le scanner),
Syntaxique (détectée par le parser), Sémantique statique (détectée par l'analyse sémantique au moment de la
compilation), sémantique dynamique (détectée au moment de l'exécution).
h. class A {
a. int num = 2.3; b. int;
private int num;
c. int@ d. int num1, num2; }
num1 = 12; class B {
num2 = num1 / 0; A a;
e. int num; int num;
String str = “dook”; void m() { a = new A();
num = str; f. int int; num = a.num;
}
g. int num; }
if (“unc”) { num = 1; }

Exercice 03 :
Donner pour chacun langages suivants son expression régulière ; écrire un analyseur lexical à la main pour les 02
langages :
- L1 = {acab, aaca}
- L2 = aa*db*𝑐 +
- L3 = L1 ou L2

Exercice 04 :
Soit le langage 𝐿𝑖𝑑 des identificateurs, composés d’une lettre au moins, éventuellement suivie de chiffres, de lettres
et de ‘_’, se terminant par une lettre ou un chiffre.

- Déterminer l’expression régulière de 𝐿𝑖𝑑 puis construire son automate à états finis déterministe (AFD)
- Modifier l’AFD pour qu’il reconnaisse aussi le mot clé if ; déterminer sa matrice de transition.
- Ecrire un algorithme de reconnaissance des identificateurs par 02 méthodes différentes. Modifier l’algorithme
pour que la longueur de l’identifiant ne dépasse pas 10 caractères.

Vous aimerez peut-être aussi