UTBM LO52UV LO52 Systèmes embarqués et Informatique mobileExamen final printemps 2006Jeudi 29 juin 2006Documents autorisés - Durée 2hREDACTION : rédigez chaque partie sur une feuille séparéePartie I :Génération, Optimisation de code et Informatique Mobile (12 points) 1. Exercice 1 : Lex/Flex (4 points)1 – Ecrire un analyseur lexical qui permet d’inverser chaque mot d’une phrase (suites delettres). Exemple :• Laval est une ville => lavaL tse enu elliv2 – Ecrire un analyseur lexical qui reconnaît le mini langage LISP compose des mots clésCONS, CAR, CDR, NIL et QUOTE et vérifie que l’expression est correctement parenthésée.Exemples :• (CAR QUOTE(1 2 3)) est correct• (CONS 1 QUOTE(3 4)) est correct• ()) est incorrect3 – Ecrire un parseur grammatical qui évalue les expressions du mini langage LISP de laquestion précédente. CAR renvoie le premier élément d’une liste, CDR le reste, CONSconstruit une liste à partir d’un élément et d’un reste NIL est la constante de fin de liste.QUOTE empêche l’évaluation de l’expression qui suit. Pour cela on suppose qu’on disposed’une librairie de liste chaînées d’entiers avec les fonctions : liste creerListe(), listeinsertionTete (int e, liste l), int premier(liste l) et liste reste(liste l). Cette librairie s’appellelistes.h. Exemples :• (CAR QUOTE(1 2 3)) = (1)• (CONS QUOTE 1 QUOTE (2 6 7)) = (1 2 6 7)- 1 -UTBM LO522. Exercice 2 : Optimisation de code (4 points)Soit le fragment de code suivant :(1) y:=2*a ...
REDACTION : rédigez chaque partie sur une feuille séparée
LO52
Partie I : Génération, Optimisation de code et Informatique Mobile (12 points)
1. Exercice1 : Lex/Flex (4 points)
1 – Ecrire un analyseur lexical qui permet d’inverser chaque mot d’une phrase (suites de lettres). Exemple : Laval est une ville => lavaL tse enu elliv ·
2 – Ecrire un analyseur lexical qui reconnaît le mini langage LISP compose des mots clés CONS, CAR, CDR, NIL et QUOTE et vérifie que l’expression est correctement parenthésée. Exemples : ·est correct(CAR QUOTE(1 2 3)) ·(CONS 1 QUOTE(3 4)) est correct ·()) est incorrect
3 – Ecrire un parseur grammatical qui évalue les expressions du mini langage LISP de la question précédente. CAR renvoie le premier élément d’une liste, CDR le reste, CONS construit une liste à partir d’un élément et d’un reste NIL est la constante de fin de liste. QUOTE empêche l’évaluation de l’expression qui suit.Pour cela on suppose qu’on dispose d’une librairie de liste chaînées d’entiers avec les fonctions:liste creerListe(),liste insertionTete (int e, liste l), int premier(liste l) et liste reste(liste l). Cettelibrairie s’appelle listes.h. Exemples : ·(CAR QUOTE(1 2 3)) = (1) ·(CONS QUOTE 1 QUOTE (2 6 7)) = (1 2 6 7)