Ecologie Informatique

le livre de Philippe Guglielmetti

2:Données et Mémoire

Tout n’est que bits

Considérons un composant .NET implémentant un design pattern « façade » pour une classe J2EE accédant à une base Oracle par l’intermédiaire de Web Services. Si vous ne voyez pas que quoi je veux parler, ça n’a aucune importance, le but est de ramener sur Terre les adeptes de la programmation « de haut niveau » : en fin de compte, tout se ramène à des bits écrits sur un ruban de tortue cosmologique. Chacun des êtres informatiques mentionnés n’a d’existence « réelle » que sous la forme d’une séquence de 0 et de 1 dans une mémoire.

Le bit est donc le seul atome de l’univers virtuel, qui n’a qu’une seule dimension. Il existe en deux états, 0 et 1 et forme de petites molécules en forme de courtes chaînes appelées « mots ».

Les processeurs actuels sont capables de traiter simultanément des « mots » de 8 bits (octets), de 16 ou de 32 bits, bientôt de 64. Le même mot peut avoir diverses significations suivant les opérations effectuées sur lui. Seul le contexte (l’état de la tortue au moment de la lecture ou de l’écriture) permet de distinguer la signification du mot.

En particulier, certains mots sont compris par le processeur comme des instructions à exécuter. Le « Chapitre 3 : Le code exécutable » traitera des programmes et de leur exécution, ici nous allons nous occuper des données et de leur monde : la mémoire.

Types de données prédéfinis

Les données que le processeur est capable de traiter par une seule instruction sont par exemple :

8 bits (1 octet / 1 byte)

  • Une valeur booléenne vrai ou faux. Il serait théoriquement possible d’en stocker 8, mais pour des raisons pratiques on se limite à n’utiliser qu’un bit de l’octet.
  • Nombre entre 0 et 255
  • Nombre signé entre -128 et +127
  • Nombre BCD entre 00 et 99
  • Caractère ASCII (lettre, chiffre, ponctuation…)

16 bits

  • Nombre entre 0 et 65535
  • Nombre signé entre -32768 et +32767
  • Date sur un siècle environ ou heure:minutes:secondes
  • Caractère UNICODE (tous les caractères de toutes les écritures de toutes les langues)
  • Décalage dans un segment de mémoire de 64K

32 bits

  • Nombre entre 0 et 4 milliards, signé entre -2 et +2 milliards
  • Adresse indiquant une position en mémoire. Le concept essentiel de « pointeur » est basé sur les adresse sera détaillé au Les Pointeur

32-80 bits

  • Nombres flottants à simple, double ou haute précision

Types complexes

Les informations de type prédéfinis sont les molécules de l’informatique : toute structure plus complexes est formée en les combinant:

  • Les tableaux (arrays): suite d’un nombre prédéfini d’éléments du même type.
  • Les chaînes de caractères, pouvant contenir un nombre maximal de symboles (généralement 255 ou 32767) soit au format ASCII, soit en UNICODE.
  • Les enregistrements (records, structs) formés d’un ensemble prédéfini de données de types variés. Un enregistrement “employé” peut par exemple contenir des chaînes pour le nom et le prénom, la date de naissance et d’embauche, un nombre flottant pour le salaire et un pointeur vers l’enregistrement du supérieur hiérarchique.
  • Les structures sont les plantes de l’informatique: elles sont composées d’enregistrements reliés les uns aux autres par des pointeurs pour former des arbres, des graphes et autres formes ramifiées. Le « Chapitre 7 : Structures de données » en parlera en détail, ainsi que des « bases de données », mais après avoir abordé les pointeurs au « Les Pointeur ».
  • Les objets sont les bêtes de l’informatique. La tendance actuelle est de les présenter comme des entités abstraites dotées de toutes sortes de propriétés merveilleuses, voire magiques. Mais fondamentalement, un objet est un enregistrement étroitement lié à du code exécutable. Le « Chapitre 8 : Objets » leur est consacré.

Fichiers

Images, sons, liste des clients, lettres et pages web ont beau être des fichiers très importants pour vous, ce que nous avons dit plus haut des données est valable ici aussi : tout n’est que bits, et seul le contexte permet à l’ordinateur de « savoir » s’il doit envoyer les données lues vers le haut-parleur de la carte son ou les afficher en caractères chinois dans une fenêtre de votre écran.

En fait, tout le « système de fichier » (« file system ») est une structure de donnée, ou plutôt une « base de donnée » puisqu’elle réside elle-même sur le disque. La structure est très proche de celle utilisée pour la gestion de la mémoire de travail, et la gestion de la mémoire disque se fait de manière très similaire à la gestion de la RAM, et nous allons voir comment très bientôt.