Cours PLURITAL 2013-2014

Supplément au Cours n° 3 (22 octobre 2013) : Note sur la "sémantique des chaînes"

Jean-François Perrot

  1. Problème de représentation en mémoire
  2. Interprétation : octets ou caractères ?
  3. Diversité linguistique

  1. Problème de représentation en mémoire

    La notion commune de chaîne de caractères (alias string) pose à la technique informatique un délicat problème de représentation en mémoire.
    En effet, la notion même de chaîne comporte l'idée d'une longueur arbitraire, il n'est donc pas question de la loger dans un format fixe.

    Les nombres, au contraire, supportent très bien qu'on limite leur taille :

    La représentation des chaînes en machine demande donc d'allouer de la mémoire, ce qui entraîne une kyrielle de difficultés que les différents langages de programmation résolvent chacun à sa manière.
    La diversité des solutions se répercute directement dans l'appareillage mis en place par chaque langage pour manipuler les chaînes.


  2. Interprétation : octets ou caractères ?

    Puisqu'on parle de chaînes de caractères, c'est que les composants élémentaires des chaînes sont des caractères !
    Mais justement, qu'est-ce qu'un caractère ?
    En fait, la structure sous-jacente est celle d'une séquence d'octets (en laissant de côté les complications liées à l'allocation de la mémoire, plus ou moins fragmentée), et tout va bien si on admet l'équation caractère = octet.

    Les choses se compliquent avec l'arrivée des jeux de caractères multi-octets, au premier rang desquels Unicode.
    Un choix de nature "politique" se présente :
    C'est de ce choix qu'il est question quand on parle de sémantique des chaînes (alias string semantics).
    Les différents langages suivent des politiques différentes...

  3. Diversité linguistique