Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMartine Vial Modifié depuis plus de 9 années
1
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) www.zegour.uuuq.com email: d_zegour@esi.dz
2
Tables de compilation pour le langage Z minimal: Introduction Reflètent l’image du programme source exprimée sous une autre forme Table des symboles Non utile pour la génération de code Tables utiles à la génération de code Table des objets Table des constantes numériques …… C’est la phase sémantique qui crée et gère ces tables.
3
Tables de compilation pour le langage Z minimal: Table des symboles Associer à chaque identificateur ses attributs = (type, adresse relative dans la zone de données, … ) Une entrée est ajoutée dans la table à chaque déclaration de variable Si un identificateur est utilisé dans une instruction, il est recherché pour retrouver ses attributs L’accès à cette table occupe un temps important dans la phase de compilation. Une structure de donnée efficace oblige. On peut choisir une table ordonnée (TABSYM ) Une entrée = (Identificateur, Indice dans la table des objets)
4
Tables de compilation pour le langage Z minimal: Table des symboles Deux modules sont nécessaires : New_id(Idf) Un nouvel identificateur vient d’être déclaré. Vérifie si l’identificateur Idf n’est pas déjà déclaré (n’existe pas dans la table ) puis le met dans la table Old_id(idf ) Un identificateur vient d’être déclaré(partie déclaration) ou utilisé(partie corps). Recherche l’emplacement correspondant dans la table des symboles Définir une limite pour la table des symboles TABSYM LimitSymb = une valeur arbitraire
5
Tables de compilation pour le langage Z minimal: Table des objets - A la table des symboles est associé la table des objets (TABOB) - Un objet sert à décrire l’identificateur ( attributs ) - Un élément de TABOB est un descripteur avec 4 champs ( A1, A2, A3, A4, ) Le sens des attributs varie selon l’objet Cas des variables simples (Pour notre cas ) A1 = ‘L’ //indique un accès local A2 = type// pour l’instant type=‘E’, E pour Entier A3 A4 = adresse relative de l’identificateur (variable) dans la zone de données
6
Tables de compilation pour le langage Z minimal: Table des constantes La table des constantes (TABCONS ) contient l’ensemble des constantes numériques utilisées dans le programme source Chaque élément a un seul champ et contient la constante sous forme canonique
7
Tables de compilation pour le langage Z minimal: Longueur de la zone de données Le compilateur maintient une variable fort utile : LONGZDD Elle contient la longueur de la zone de données. Elle est déterminée après allocation de tous les objets de la procédure
8
Tables de compilation pour le langage Z minimal : Exemple Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin En fin de compilation, la table des symboles est détruite(S’il ne s’agit pas de l’action principale) TABOB 3 LONGZDD A0 B1 C2 0 1 2 Table des symboles ‘L’‘E ’0 ‘L’‘E’1 ‘L’‘E’2 ‘C’‘E’0 ‘C’‘E’1 ‘C’‘E’2 0 1 2 3 4 5 ‘3’ ‘5’ ’12’ TABCONS 0 1 2
9
Tables de compilation pour le langage Z minimal: Implémentation Modules sur la table des objets : New_attribut (P1,P2,P3,P4) Indice dans TABOB où l’objet est créé, -1 si Échec Old_attribut (I) P1, P2, P3, P4 Définir une limite pour la table des objets LimitObj = une valeur arbitraire
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.