STRUCTURE DE BASE DES ORDINATEURS
2002 Jean Bellec
On distincte habituellement deux parties
importantes dans un systme informatique: le matriel, le hardware, et le logiciel, le
software. Ces mots font la diffrence entre la partie qui est fabrique, qui peut se
toucher et qui rpond aux critres conomiques des autres objets manufacturs et la
partie qui ne se voit pas, qui est modifiable aprs l'achat et la premire installation
du matriel. Le logiciel ne peut pas se manifester sans le matriel. Le matriel sans
logiciel n'est qu'une pice totalement incapable d'une quelconque utilisation. En fait cette diffrence n'allait pas de soi dans les premiers ordinateurs qui avaient t dvelopps avec les mmes intentions que l'avaient t les automates. L'ordinateur ENIAC tait cbl pour faire des calculs balistiques tout comme les programmateurs de machines outils l'taient. Bien entendu, mme au dbut, la conception des ordinateurs pour des raisons de cot de ralisation entranait "naturellement" une structuration de la machine, de manire rutiliser des structures rptitives ne ncessitant qu'une fois pour toutes les calculs des circuits lectroniques. C'est ainsi que furent standardiss le concept de porte (on les appelait souvent des conditionneurs), de mmoire, puis d'additionneurs. Ce fut John von Neumann, dans son rapport sur
l'EDVAC qui chercha formaliser davantage les diffrents ensembles de circuits d'un
ordinateur pour dfinir ce qu'on appelle depuis longtemps le modle de von
Neumann. |
En fait,
compter des annes 1960, le modle de von Neumann fut progressivement altr et
les ordinateurs se rapprochrent insensiblement du modle de Harvard. Ces altrations ont plusieurs dimensions:
|
Un des problmes agits pendant les
premires annes de l'informatique a t celui des langages de programmation.
Certes, beaucoup ne se sont pas poss de problmes mtaphysiques et ont utiliss le
code d'ordre offert par le matriel, progressivement rendu comprhensible par
l'utilisation d'un traducteur ou assembleur, aid de pseudo-instructions de dclaration
des donnes et de macro-instructions. Mais d'autres se sont poss le problme d'une interprtation directe par la machine de langages "naturels", soit relativement proches de la langue courante (tels BASIC ou ses homologues PAF, LSA ou REXX) ou bien beaucoup plus abstraits, mais plus puissants, tels la famille de langages autour de LISP. On a, la fin des annes 1950, dcouvert que
l'approche technique de l'assembleur, c'est dire d'un programme de traduction d'un code
comprhensible l'humain en un code binaire interprt par le matriel tait tout
fait applicable et permettait au programmeur de faire largement abstraction des
particularits de la machine. Cependant, plusieurs courants de pense subsistaient parmi
les crateurs de "langages de haut niveau" et conduisirent plusieurs
familles de langage. Une premire raison en tait les diffrences alors existantes
entre calculateurs de gestion et calculateurs scientifiques. Une seconde tait la volont
de prenniser l'effort fait par les programmeurs pour apprendre un certain langage -la
compatibilit-. Des rflexions sur une plus grande rgularit du langage permettant la dfinition d'algorithmes par des scientifiques non-programmeurs donnrent lieu la cration du langage ALGOL qui a introduit des objets et des attributs qui n'taient pas directement prsents dans les ordinateurs (notamment, l'utilisation systmatique de la structure de bloc). ALGOL se heurta la concurrence de FORTRAN dj rpandu dans son vivier naturel, mais resta une rfrence auxquels ses successeurs PL/1, Pascal, ADA, et C continueront de se rfrer. |
A l'origine,
les compilateurs produisaient directement le code binaire ncessaire pour l'excution
d'un programme sur ses donnes et des pseudo-instructions (dclarations de subroutines,
INCLUDE) permettait de rcuprer dans un nouveau programme les acquis antrieurs
extraits automatiquement d'une bibliothque de code source. Malheureusement, les temps de compilation taient l'poque loin d'tre ngligeables et se comptaient en dizaine de minutes. La solution d'une bibliothque de code source pour partager les acquis tait loin d'tre satisfaisante. Par ailleurs, l'ide de raliser un programme pour chaque ensemble de donnes devint vite inacceptable surtout pour les applications de gestion. IL devint vident au dbut des annes 1960 qu'il fallait sparer la compilation de l'excution et de pouvoir faire des compilations limites aux nouvelles portions des programmes qu'il fallait associer les donnes aux programmes juste avant l'excution (chargement). Le systme d'exploitation inclut ds cette poque les deux programmes systme diteur de liens et chargeur en addition aux compilateurs (ou assembleurs). Il devint possible de raliser des programmes dont une partie tait crite en un langage de haut niveau et l'autre en assembleur par exemple. Cependant; l'ide de l'interprteur ne disparut pas compltement mais elle se rfugia dans l'interprteur de commandes du systme d'exploitation (presque toujours un langage propritaire dvelopp par les crateurs du systme d'exploitation). L'utilisation d'un interprteur de commandes pour raliser des programmes de production mergea dans les systmes d'exploitation en temps partag avec les avatars de BASIC.
|