Ce chapitre issu de CommentCaMarche.net
(http://www.commentcamarche.net/) est soumis à la licence
GNU FDL. Permission vous est donnée de distribuer, modifier des copies
de cette page tant que cette note apparaît clairement.
14.1
Qu'appelle-t-on langage informatique?
On appelle langage informatique un langage destiné à décrire
l'ensemble des actions consécutives qu'un ordinateur doit exécuter.
Les langages naturels (l'anglais, le français) représentent l'ensemble
des façons qu'ont un groupe d'individu de communiquer. Les langages
servant aux ordinateurs à communiquer n'ont rien à voir avec des
langages informatiques, on parle dans ce cas de protocoles, ce sont
deux notions totalement différentes. Un langage informatique est une
façon pratique pour nous (humains) de donner des instructions à un
ordinateur.
Un langage informatique est rigoureux: à CHAQUE instruction correspond
UNE action du processeur.
Le langage utilisé par le processeur, c'est-à-dire les données telles
qu'elles lui arrivent, est appelé langage machine. Il s'agit d'une
suite de 0 et de 1 (du binaire) mais pour plus de « clarté » il peut
être décrit en hexadécimal. Toutefois le langage machine n'est pas
compréhensible facilement par l'humain moyen
Ainsi il est plus pratique de trouver un langage intermédiaire,
compréhensible par l'homme, qui sera ensuite transformé en langage
machine pour être exploitable par le processeur.
L'assembleur est le premier langage informatique qui ait été utilisé.
Celui-ci est encore très proche du langage machine mais il permet déjà
d'être plus compréhensible. Toutefois un tel langage est tellement
proche du langage machine qu'il dépend étroitement du type de
processeur utilisé (chaque type de processeur peut avoir son propre
langage machine). Ainsi un programme développé pour une machine ne
pourra pas être porté sur un autre type de machine (on désigne par
portable un programme qui peut être utilisé sur un grand nombre de
machines). Pour pouvoir l'utiliser sur une autre machine il faudra
alors parfois réécrire entièrement le programme !
Un langage informatique a donc plusieurs avantages :
il est plus facilement compréhensible que le langage machine,
il permet une plus grande portabilité, c'est-à-dire une plus
grande facilité d'adaptation sur des machines de types différents.
Les langages informatiques peuvent grossièrement se classer en deux
catégories: les langages interprétés et les langages compilés.
14.2
Langage interprété
Un langage informatique est par définition différent du langage
machine. Il faut donc le traduire pour le rendre intelligible du point
de vue du processeur. Un programme écrit dans un langage interprété a
besoin d'un programme auxiliaire (l'interpréteur) pour traduire au fur
et à mesure les instructions du programme.
14.3
Langage compilé
Un programme écrit dans un langage dit « compilé » va être traduit
une fois pour toutes par un programme annexe (le compilateur) afin de
générer un nouveau fichier qui sera autonome, c'est-à-dire qui n'aura
plus besoin d'un programme autre que lui pour s'exécuter (on dit
d'ailleurs que ce fichier est exécutable).
Un programme écrit dans un langage compilé a comme avantage de ne plus
avoir besoin, une fois compilé, de programme annexe pour s'exécuter.
De plus, la traduction étant faite une fois pour toute, il est plus
rapide à l'exécution. Toutefois il est moins souple que programme
écrit avec un langage interprété car à chaque modification du fichier
source (fichier intelligible par l'homme: celui qui va être compilé)
il faudra recompiler le programme pour que les modifications prennent
effet.
D'autre part, un programme compilé a pour avantage de garantir la
sécurité du code source. En effet, un langage interprété, étant
directement intelligible (lisible), permet à n'importe qui de
connaître les secrets de fabrication d'un programme et donc de copier
le code voire de le modifier. Il y a donc risque de non-respect des
droits d'auteur. D'autre part, certaines applications sécurisées
nécessitent la confidentialité du code pour éviter le piratage
(transaction bancaire, paiement en ligne, communications sécurisées,
...).
14.4
Langages intermédiaires
Certains langages appartiennent en quelque sorte aux deux catégories
(LISP, Java, Python, ..) car le programme écrit avec ces langages peut
dans certaines conditions subir une phase de compilation intermédiaire
vers un fichier écrit dans un langage qui n'est pas intelligible (donc
différent du fichier source) et non exécutable (nécessité d'un
interpréteur). Les applets Java, petits programmes insérés parfois
dans les pages Web, sont des fichiers qui sont compilés mais que l'on
ne peut exécuter qu'à partir d'un navigateur internet (ce sont des
fichiers dont l'extension est « .class »).