Introduction à la programmation informatique

Bernard Amade

Chapitre 6. Digression: Les symboles et la vision du bas niveau §§

Ce chapitre constitue une parenthèse dans le déroulement de l’exposé. Nous avons vu un certain nombre de notions et il serait intéressant de savoir ce qui se passe "sous le capot". On va donc regarder de plus près le niveau quasiment "physique" dans lequel se joue la gestion des données.

Un langage va utiliser une variable pour stocker une donnée :

les données sont représentées par une suite de cases en mémoire. Une variable pointe sur un ensemble de cases

  • La variable a un nom (VariableX) mais, pour certains modes d’exécution, ce nom va disparaître dans le code machine généré. Les données correspondantes vont être stockées à une adresse dans la mémoire.
  • La variable a un type (Type) qui permet d’une part de savoir combien d’espace il faut réserver dans la mémoire et, d’autre part, d’interpréter les données qui sont situées à cet endroit. (mais nous avons vu qu’il existe des langages dans lesquels les variables ne sont pas typées )

6.1. Langages interprétés, langages compilés

texte

6.2. Au niveau le plus bas….

texte

6.3. Représentation des données

texte

6.4. Processeurs

texte

6.5. Parallélisme

texte

6.6. Manipulation de données, gestion de la mémoire

texte

6.7. Implantation des structures de données

Ce chapitre présente de manière simplifiée la façon dont certaines structures organisent les données en mémoire.

6.7.1. Tableaux §§

Un tableau stocke des données de manière contiguë en mémoire. A la base ce sont des données de même taille; donc pour accéder à la Nième donnée il suffit de rechercher à partir de l’emplacement mémoire du début du tableau, un emplacement situé à N x taille de la donnée

une variable de type tableau pointe sur une série de cases contiguës qui sont les éléments du tableau

On peut aussi réaliser des tableaux qui gèrent des indirections en mémoire: pour retrouver l'élément N on recherche une donnée à l’index N qui donne l’emplacement de la valeur recherchée:

un tableau peut pointer sur une série de cases qui sont elles mêmes des pointeurs d’indirection vers d’autres emplacements dans la mémoire

Selon les langages, dans un tel tableau les éléments qui permettent de réaliser l’indirection peuvent être:

  • des pointeurs : c’est une donnée informatique qui réprésente une adresse en mémoire, le langage de programmation connait également la nature de ce qui est pointé.
  • des références : c’est une donnée qui permet de retrouver une donnée en mémoire. Dans les langages qui utilisent des références les données stockées dans le tas peuvent se déplacer suite à une réorganisation du tas. La référence permet de retrouver la donnée même si elle s’est déplacée.

L’avantage d’un tel tableau est qu’il permet de stocker dans une même structure des données qui chacune nécessite une taille mémoire différente (par exemple des chaînes de caractères de tailles différentes).

6.7.2. Listes

texte

6.7.3. Table de Hachage

texte

Table of contents

previous page start next page