Ed chaine de production de programmes nfa003 2008 2009 joelle delacroix
NFA - Jo? lle Delacroix ED CHAINE DE PRODUCTION DE PROGRAMMES Exercice Petit compilateur On considère un petit langage simple dé ?ni comme suit - Les identi ?cateurs sont des unités lexicales constituées soit d'une lettre unique soit d'une lettre suivie d'un chi ?re Les nombres sont également des unités lexicales constituées de chi ?res on ne prend en compte que des entiers positifs ou nuls Ces unités lexicales peuvent donc être dé ?nies par les règles suivantes Les espaces ne peuvent se trouver à l'intérieur d'une unité lexicale et n'ont pas de signi ?cation Une instruction doit se trouver toute entière sur une seule ligne et une ligne ne peut contenir qu'une seule instruction A- L'analyse lexicale consiste à reconna? tre la suite des unités lexicales d'une ligne Donner le résultat fourni par l'analyseur lexical pour les lignes suivantes A A B A B C D A AB A B- L'analyse syntaxique consiste à véri ?er la concordance de la suite des codes syntaxiques telle qu'elle résulte de l'analyse lexicale avec les règles de syntaxe du langage Elle permet aussi de retrouver la structure syntaxique du programme Donner la structure syntaxique pour chacune des lignes suivantes A A B A B C D A CNFA - AB A Jo? lle Delacroix Exercice Compilation Soit le langage dé ?ni par les règles de Backus-Naur suivantes programme PROGRAM nom de programme corps de programme corps de programme suite de declarations suite d'instructions FIN suite de declarations declaration declaration suite de declarations declaration identi ?cateur REEL identi ?cateur ENTIER suite d'instructions instruction instruction suite d'instructions instruction addition multiplication identi ?cateur lettre valeur entière chi ?re valeur réelle chi ?re chi ?re nom de programme CNFA - Jo? lle Delacroix Exercice Étude du chargeur et de l'éditeur de liens Soit une machine disposant d ? une mémoire de emplacements Chaque emplacement peut contenir un entier qui peut représenter une donnée ou une instruction La machine dispose de instructions qui sont codées comme suit LOAD l'accumulateur ADD MUL constante STORE MEMOIRE adresse JMP adresse adresse constante constante adresse adresse met MEMOIRE adresse dans ajoute la constante à l'accumulateur multiplie l'accumulateur par la met l'accumulateur dans aller à l'instruction située à On considère le module suivant NOM PUBLIC EXTERN A WORD B WORD INCR LOAD MUL ADD STORE JMP FIN ESSAI INCR SUITE A B SUITE nom du module réservation d'un emplacement pour A initialisé à réservation d'un emplacement pour B non initialisé Le résultat d'une compilation est un ?chier dont les enregistrements décrivent non seulement la traduction du module source dans le langage de la machine mais aussi les informations nécessaires pour relier ce module aux autres modules qui constitueront un programme Ces enregistrements peuvent prendre diverses formes suivant qu'ils contiennent le code ou les données du module ou servent à l'établissements des liaisons intermodules Les enregistrements générés par le compilateur sont les suivants entête identi ?cateurmodule tidenti ?cateur taille entier lienàsatisfaire identi ?cateurlas tidenti ?cateur lienutilisable identi ?cateurlu tidenti ?cateur valeurlu entier codeabsolu
Documents similaires










-
35
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Jui 19, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 45.7kB