La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Présentations similaires


Présentation au sujet: "Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"— Transcription de la présentation:

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


Télécharger ppt "Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"

Présentations similaires


Annonces Google