Institut d'électronique fondamentale (Université Paris XI Orsay)
L'ordinateur, tout d'abord rudimentaire, doté d'une mémoire qui n'était qu'une simple suite d'objets semblables, a évolué vers un appareillage capable de représenter et de traiter différents types de donnée. Cela s'est fait au coup par coup, avec des innovations, des abandons, des résurgences... sous l'influence surtout des langages de programmation et des problème à traiter.
Cependant, malgré quelques tentatives intéressantes, les choses ne sont pas allées très loin encore : beaucoup de types complexes ne sont implantables dans les machines usuelles que par l'entremise des compilateurs; cela coûte fort cher, en encombrement des programmes (nombre d'instructions élémentaires) et en temps d'exécution.
On a proposé d'adjoindre au matériel maintes structures architecturales afin de traiter plus efficacement les type de donnée. Ces mécanismes sont souvent très parcellaires, car ils ne s'appuient pas sur un concept universel, la structure mathématique, concept décrit et étudié par l'algèbre abstraite telle la théorie des catégories.
EP présente l'évolution de son implémentation dans les
ordinateurs à travers toutes les générations d'architecture
:
- évolution de l'implémentation matérielle du concept de
"type de données" sous les trois aspects qui le définissent
en machine, à savoir sa représentation, la façon d'y accéder
et sa protection ;
- les mécanismes architecturaux nécessaires pour son traitement.
Ainsi, pour les machines de la première génération, les
premières à implémenter les divers types élémentaires
: 603, SSec et
702 IBM, MAMD et Eniac, Gamma 2 de Bull et le CEC201 de Datatron (aujourd'hui
Burroughs).
Les machines de la deuixème génération (IBM 360 et Stretch, Cab 1500 et Cab 500, B 5000) ont non seulement augmenté la précision des calculs mais ont aussi implémenté un nouveau type de données - la pile - ainsi que les mécanismes matériels nécessaires à la protection de l'intégrité de l'information (parité).
La troisième génération, celle que nous vivons actuellement (la troisième du point de vue des concepts architecturaux et non pas de la technologie) a implémenté de nouveaux types uniquement dans les machines spécialises à parallélisme massif : les machines vectorielles, les processeurs-tableaux, les pyramides... La machine universelle (sauf 180286 et ses descendants, et NS 32000 et ses descendants, et cela uniquement pour le type tableau) n'a pas vu son architecture interne modifiée : celle-ci s'est figée depuis les générations précédentes.
L'équipe d'Orsay propose de nouvelles solutions centrées sur le typage des données, afin de limiter le temps perdu au contrôle des accès à la représentation de types complexes de données (pile, queue, automate d'états finis, fichiers, ...)
Question : puisqu'on ne gagne rien sans perdre sur un autre plan, on peut se demander si le typage des données n'a pas un coût trop élevé par rapport aux gains, sauf peut-être pour les compilateurs.
Compte-rendu rédigé par E. Pissalous et C. Hoffsaes.