• Aucun résultat trouvé

Chaque exercice consiste ` a r´ealiser un programme ex´ecutable exoi.o en utilisant le compila- teur d’analyseur lexical flex.

N/A
N/A
Protected

Academic year: 2022

Partager "Chaque exercice consiste ` a r´ealiser un programme ex´ecutable exoi.o en utilisant le compila- teur d’analyseur lexical flex."

Copied!
4
0
0

Texte intégral

(1)

Universit´e Bordeaux 1

Licence, module Compilation, 2016/2017

TD2-Analyse lexicale

Chaque exercice consiste ` a r´ealiser un programme ex´ecutable exoi.o en utilisant le compila- teur d’analyseur lexical flex.

Exercice 2.1

Appliquer, sur tout texte ´ecrit en Fran¸cais, sans accents, les substitutions suivantes :

Alpes → Pyrenees, loup → ours, loups → ours, chamois → {izard, izards}, Pralognan → Saint − Girons

en essayant de respecter l’accord en nombre (singulier/pluriel).

Attention : “loupe”, ”loupiotte”, “chevre chamoisee” restent invariants.

Par exemple :

Les loups et les brebis manifestent, chacun de leur cote, dans les rues de Pralognan.

Quelques chamois ainsi que des chevres chamoisees se sont joint aux brebis,

par solidarite sans doute. Un vieux chamois sage a accepte d’etre nomme mediateur.

sera transform´e en

Les ours et les brebis manifestent, chacun de leur cote, dans les rues de Saint-Girons.

Quelques izards ainsi que des chevres chamoisees se sont joint aux brebis, par solidarite sans doute. Un vieux izard sage a accepte d’etre nomme mediateur.

Exercice 2.2

Conjuguer un verbe du premier groupe au pr´esent de l’indicatif. La donn´ee sera de la forme

< pronom personnel > [verbe] < complements eventuels >.

Par exemple : sur ils [trouver] des pommes, le programme devra retourner ils trouvent des pommes

et sur je [marcher] sur la plage, le programme devra retourner je marche sur la plage

Exercice 2.3

Reconnaˆıtre les identificateurs de variables dans un programme IMP. En fin d’analyse : ´ecrire les couples idvar : nocc o` u nocc est le nombre d’occurrences de l’identificateur idvar dans le programme.

Attention : while, do, if, then, else, etc ... ne sont pas des identificateurs. Exemple : sur l’entr´ee (((X1 := 2+LONG ; X1 := X1 + 3);X2 := 10) ; while X2 do (X1 := X1 *2)) la sortie sera (X2 : 2) (LONG : 1) (X1 : 5)

Exercice 2.4

On suppose qu’une d´efinition de fonction est de la forme : defun idfon(idarg1:type1, ...,idargn:typen) o` u les types sont de la forme :

type ::= int | bool | array of type

Tester que le nombre d’arguments de l’appel d’une fonction, sur des arguments atomiques (identificateur de variable ou de constante ou numeral) est conforme ` a sa d´eclaration.

Quelle est la difficult´e rencontr´ee lorsqu’on essaye d’´etendre ce test ` a des arguments qui sont

des expressions quelconques ?

(2)

Exercice 2.5

Le professeur Cosinus

1

a l’habitude de truffer ses programmes C de suites d’instructions “de mise au point” de la forme :

/* begindebug inst1

inst2 ...

enddebug */

Ecrire une commande nettoyer.o qui prend en entr´ee un programme C de Cosinus et retourne une version de ce programme d´ebarass´ee des suites d’instructions de mise au point.

1. qui maˆıtrise mal la commandegdb

2

(3)

Exercice 2.6

Un programme ´ecrit dans le langage C3A (Code ` a 3 Adresses) consiste en une suite de lignes, chacune de la forme :

Etiquette : Operateur : Argument : Argument : Destination

Les champs Etiquette, Destination sont des identificateurs i.e. des mots qui consistent en une lettre suivie d’un nombre quelconque de lettres ou chiffres. Operateur est l’une des chaˆınes de caract`eres :

Pl, Mo, Mu, Af, Afc, Sk, Jp, Jz, St

et Argument peut ˆetre soit un identificateur, soit un num´eral i.e. une suite de chiffres, pr´ec´ed´ee

´eventuellement d’un signe (“+” ou “-”).

La s´emantique de ce langage est d´efinie (informellement) comme suit :

- Pl affecte ` a la variable Destination la somme du premier et du second argument - Mo affecte ` a la variable Destination la diff´erence du premier et du second argument - Mu affecte ` a la variable Destination le produit du premier et du second argument - Af provoque une affectation de la valeur du second argument au premier argument

- Afc provoque une affectation de la valeur du premier argument, qui est un numeral, ` a la variable Destination

- Sk ne provoque aucune modification de l’environnement - Jp provoque un saut ` a l’instruction ´etiquet´ee par Destination

- Jz provoque un saut ` a l’instruction ´etiquet´ee par Destination, dans le cas o` u le premier argument est nul

- St arrˆete l’ex´ecution.

En fait, vu cette s´emantique, seul le champ Operateur doit imp´erativement ˆetre correc- tement rempli ; les autres champs peuvent ˆetre “vides” c’est ` a dire consister en une suite de caract`eres “ blanc” ou “tabulation”, lorsque l’op´eration (de la mˆeme ligne) ne les utilise pas et ils ne sont pas la destination d’une instruction de saut (d’une autre ligne).

1- Ecrire une commande qui, prenant un entr´ee un programme C3A, construit un objet C qui est une liste chaˆın´ee de quadruplets au sens du type BILQUAD :

char *ETIQ;

int OP;

char *ARG1, *ARG2, *RES;

struct cellquad *SUIV;} *QUAD;

typedef struct{

QUAD debut;

QUAD fin;}BILQUAD;

2- ´ Ecrire une commande qui interpr`ete le programme C3A sur l’environnement initial nul (chaque variable a une valeur initiale nulle).

3

(4)

Des fonctions auxiliaires maniant les environnements et les quadruplets sont disponibles dans les fichiers environ.c et bilquad.c.

Exemple : l’interpr´etation du programme

ET2 :Sk : : : X2

ET3 :Afc :10 : : CT4

ET1 :Pl :X2 :CT4 : VA5

ET0 :Af :X1 :VA5 :

ET6 :Sk : : :

ET9 :Sk : : : X1

ET10 :Afc :3 : : CT11

ET8 :Mu :X1 :CT11 : VA12

ET7 :Af :X1 :VA12 :

ET13 :St : : :

produira l’environnement :

(VA12:30) (CT11:3) (VA5:10) (X1:30) (CT4:10) (X2:0)

4

Références

Documents relatifs

Si l’on considère la probabilité d’être en emploi deux années plus tard, l’influence de la perception d’une allocation n’est significative et négative qu’au sein des

Objet du projet : création d'un centre d'accueil de jour de 6 places au sein d'un établissement d'hébergement pour personnes âgées dépendantes à Montreuil (93) / Réaffectation

Apr es avoir pass e en revue la litt erature existante, les auteurs de cet article * appellent a des travaux de meilleure qualit e pour mesurer l ’ effet de la visibilit e

Conduite de l’essai, mesures, prélèvements, analyses Quatre lots expérimentaux étaient constitués le jour du sevrage, en allouant les aliments expérimentaux dans un

David GUILLOU (1), Fabien ALLEMAN (2), Noëmie LEMOINE (1) (1) MiXscience, Campus Avril, CS17228, 2, avenue de Ker Lann, 35172 Bruz, France.. (2) ELANCO FRANCE, Crisco Uno, Bâtiment

Influence  de  l’induction  de  la  mise  bas  sur  les  profils  hormonaux des truies en phase péripartum (Exp. 2)  L’injection  d’alfaprostol  n’a  pas 

Permet d’obtenir les coordonnées d’un curseur que l’on peut déplacer sur chaque courbe à l’aide des flèches « déplacement horizontal à gauche ou à droite » du clavier.

En plus de perturber leur vie quotidienne, le dérèglement climatique peut également affecter les habitudes de reproduction de nos animaux de compagnie4. L’effet est