©Pierre Marchand, 2001 3
13.2 Traduction et interprétation
Les langages évolués tels que Pascal, C, FORTRAN, COBOL, BASIC,
APL, PL/1, ADA, Java, etc. convertissent des instructions de haut
niveau en langage machine. Ces langages sont plus portables que
l’assembleur au niveau du code source.
Cette conversion peut s’effectuer de deux façons : la traduction ou
l’interprétation.
La traduction consiste à générer, dans le langage binaire de la machine
cible, un programme ayant les fonctionnalités définies dans le pro-
gramme source. Ce programme exécutable est ensuite chargé en
mémoire pour être exécuté.
Le programme traducteur s’appelle compilateur. L’assembleur est aussi
un compilateur. Autres membres de cette catégorie : Pascal, C / C++,
FORTRAN, COBOL, Algol, etc.
Unité 4a: Architecture logicielle
©Pierre Marchand, 2001 4
13.2 Traduction et interprétation
Dans le cas de l’interprétation, le travail de traduction s’effectue au
moment de l’exécution. L’interprète doit donc se trouver dans la
machine cible au moment de l’exécution. Exemples : BASIC, APL,
Smalltalk. Chaque instruction de code source est convertie en une ou
plusieurs instructions en langage machine. L’exécution commence tout
de suite, contrairement au cas de la traduction, mais est plus lente.
Dans le cas du langage Java, on obtient une excellente portabilité en
utilisant une approche mixte. On utilise un compilateur pour convertir le
code source en code intermédiaire, indépendant de la plate-forme,
appelé byte-codes. Ces byte-codes sont ensuite interprétés par la
machine cible au moyen d’un interprète appelé machine virtuelle qui
convertit au fur et à mesure les byte-codes en langage machine.
Unité 4a: Architecture logicielle