Les variables
L'étude des détails des différentes représentations binaires dépasse le cadre de ce livre, mais ce qu'il est important de retenir c'est que la machine travaille à partir de représentations binaires pour produire d'autres représentations binaires. Le lien entre un groupe de bits donné et ce qu'il représente pour les humains que nous sommes, repose sur des conventions qu'il faut connaître pour en déterminer la nature.
De plus, la mémoire de l'ordinateur contient un grand nombre de représentations binaires diverses. En effet, tel octet peut représenter une lettre ou un nombre de 0 à 255, telle suite d'octets peut alors représenter un mot ou une phrase (une suite de lettres), ou encore appartenir à un groupe de 4 octets dont l'ensemble des 32 bits représentent un entier entre -2 et +2 milliards. Mais comme tous ces octets ne sont que des ensembles de bits placés à 0 ou 1, il nous est impossible de connaître leur signification sans d'abord connaître les conventions qui les régissent.
C'est exactement ce genre de convention que nous établissons lorsque nous déclarons une variable dans un programme. En fait, lorsque nous déclarons que la variable x est un caractère, nous déterminons différentes choses :
- nous allons utiliser un espace de mémoire qui peut être d'un octet ou plus selon la convention utilisée ;
- une correspondance entre la disposition des bits de cet espace et chaque caractère représenté ;
- l'endroit, dans la mémoire de l'ordinateur, où se trouve cet espace, soit l'adresse de la variable.
Par exemple, dans le langage Java, un caractère utilise 16 bits de mémoire (deux octets) et les représentations binaires suivent la convention Unicode, alors qu'en Pascal Standard, un caractère utilise 8 bits (un seul octet) et les représentations binaires dépendent de la page de codes utilisée ; celle-ci étant fonction de la langue supportée par le programme.
Finalement, le nom que nous avons choisi pour la variable nous permet de la différencier parmi d'autres, mais en interne, la machine utilise plutôt des adresses qui sont aussi des valeurs binaires. En effet, à chaque octet de mémoire correspond une adresse unique que la machine utilise pour retrouver cet octet en particulier. Mais les langages de programmation nous facilitent la tâche en nous permettant d'associer un nom à l'espace mémoire de la variable plutôt que d'utiliser une valeur binaire. Le nom de la variable n'est donc qu'un moyen pratique pour signifier son adresse en mémoire de l'ordinateur.