Telechargé par Nassima Bousahba

Exam compil

publicité
Durée : 01h 30min
Epreuve de Moyenne Durée
Exercice 1 (6 points)
1. Sur un schéma expliquer les différentes phases et étapes du processus de compilation et expliquer
brièvement chaque étape.
2. Quel est le rôle de la traduction dirigé par la syntaxe ?
3. Qu’est-ce qu’une DDS ? Combien de types de DDS existe –il ? Donnez un exemple.
4. Quelle sont les types de grammaires associés à une DDS ?
5. Qu’est-ce qu’une Forme intermédiaire ? Donnez un exemple
Exercice 2 (8 points)


On désire développer un évaluateur d’expressions qui peuvent être parenthèses. Les opérations
permises sont
+, -, * et /. Les opérandes peuvent être des nombres ou le résultat de la fonction MEDIANE. La
fonction MEDIANE a pour entrer une série de nombres et retourne la valeur de l’élément médian si le
nombre d’argument est impair ou la moyenne des deux éléments médians si le nombre d’arguments est
pair (Exemples : MEDIANE (2 ; 8 ;90 ;6 ;4) retourne la valeur 6 ; MEDIANE (100 ;1 ; 2 ;90 ;6 ;4)
retourne la valeur 5).
Exemples de valeurs retournées par votre évaluateur :
Expression
6+MEDIANE(2;8;90;6;4)*2
MEDIANE(50+50;1;2;45*2;6;4)+5*3
Valeur retournée
18
20
1- Donnez le schéma de traduction ascendant pour évaluer une expression. Utiliser obligatoirement les
attributs
associés aux symboles de la grammaire.
2- Donner l’arbre décoré correspondant à l’expression : MEDIANE(50+50;1;2;45*2;6;4)+5*3.
Exercice 3 (6 points)
1. Traduire en quadruplet, triplet direct, triplet indirect, et arbre syntaxique à 3 adresses l’expression suivante :
a+b*c-d/(b*c)
2. Traduire en quadruplet la portion du programme C suivante :
Switch (x = y*2)
{Case 0 : y = 1; break;
Case 1 : y=2*x+1; break;
Case 2 : z= 8; break ;
Default : z=0 ; } ;
Téléchargement