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

Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Présentations similaires


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

1 Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: d_zegour@esi.dzd_zegour@esi.dz

2 Organisation de la mémoire pour le langage minimal : Introduction Objectif : attribuer un emplacement mémoire à tout objet du programme Revient à définir un mécanisme d’adressage D’une manière générale, un objet peut être une variable simple, tableau, structure (ou enregistrement), … Pour notre cas (langage Z minimal), l’objet ne peut être qu’une variable entière. C’est la phase sémantique qui est chargée de l’attribution des adresses aux variables.

3 Organisation de la mémoire pour le langage minimal : Zone de données A toute procédure est associée une zone de données La zone de données contient l’ensemble des objets déclarés dans le module, les variables temporaires, … La zone de données est un ensemble de mots mémoire (tableau) Pour notre cas, un mot mémoire de la zone de données représente une variable (déclarée ou temporaire) Attention : - L’espace pour la zone de donnée n’existe pas au moment de la compilation - Sa longueur est connue au moment de la compilation - Il est alloué au moment de l’exécution quand la procédure est appelée

4 Organisation de la mémoire pour le langage minimal : Mode d’allocation En général il existe deux types d’allocation Allocation statique Chaque mot mémoire contiendra à l’exécution la valeur de la variable Allocation dynamique Chaque mot mémoire contiendra à l’exécution l’adresse de la variable L’allocation de l’espace pour la variable se fera quand le module est appelé Pour notre cas, on optera pour l’allocation dynamique.

5 Organisation de la mémoire pour le langage minimal : Exemple Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin Pour@A Pour @B Pour @C La zone de données n’existe pas mais aura à l’exécution cette image 0 1 2 En fin de compilation

6 Organisation de la mémoire pour le langage minimal : Allocation dynamique @A Pour @B Pour @C Zone de données Variable A A l’exécution après déclaration de A Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin 2 0 1

7 Organisation de la mémoire pour le langage minimal : Allocation dynamique @A @B @C Zone de données Variables A, B et C A l’exécution avant A := 3 Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin 2 0 1

8 Organisation de la mémoire pour le langage minimal : Allocation dynamique @A @B @C 3 5 Zone de données Variables A, B et C A l’exécution après B := 5 Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin 2 0 1

9 Organisation de la mémoire pour le langage minimal : Allocation dynamique @A @B @C 3 5 12 Zone de données Variables A, B et C A l’exécution après C := 12 Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin 2 0 1

10 Organisation de la mémoire pour le langage minimal : Attribution des adresses  Le compilateur attribue des adresses relatives aux variables dans leur ordre de déclaration  Dans l’exemple, VariablesAdresses relatives dans la zone de données A0A0 B1B1 C 2


Télécharger ppt "Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"

Présentations similaires


Annonces Google