Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAnge Dumont Modifié depuis plus de 9 années
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
Présentations similaires
© 2025 SlidePlayer.fr Inc.
All rights reserved.