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

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : Introduction
Programmation Orienté Objet en C++
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Sémantique des déclarations pour le langage Z minimal
la programmation en langage C
C.
Les structures de données
FLSI602 Génie Informatique et Réseaux
8. Les tableaux P. Costamagna – ISEN N1.
Principes de programmation (suite)
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Algorithmique et Programmation
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-2000
Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements.
Standard Template Library
Séance d’introduction
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Méthode et Outils pour la Programmation
Programmation non procédurale Le projet ECOLE 2000
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Structures de données IFT-2000
Plan cours La notion de pointeur et d’adresse mémoire.
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir
Structures de données avancées : Hachage dynamique
Le langage C Rappel Pointeurs & Allocation de mémoire.
Structures complexes Pr ZEGOUR DJAMEL EDDINE
Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Procédures et fonctions Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Listes linéaires chaînées Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction au langage C Fonctions et Procédures
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Structures de contrôle Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Les types composés Les enregistrements.
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Expressions sur les chaînes de caractères Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
ISBN Chapitre 10 L'implémentation des sous- programmes.
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Une brève présentation de C# Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) C O M P I L Z.
Fichiers Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
3ième Classe (Mardi, 23 Septembre) CSI2572. O jourd'8: E Allocation de mémoire E Déallocation de mémoire E Tableaux (n dimensions) E Arithmetique des.
Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Informatique 2A Langage C 3 ème séance.
Transcription de la présentation:

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

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.

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

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.

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

Organisation de la mémoire pour le langage minimal : Allocation 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

Organisation de la mémoire pour le langage minimal : @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

Organisation de la mémoire pour le langage minimal : @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

Organisation de la mémoire pour le langage minimal : @C 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

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