|
On appelle "langage
informatique" un langage destiné à
décrire l'ensemble des actions consécutives
qu'un ordinateur doit exécuter. Les langages naturels
(par exemple l'anglais ou le français) représentent
l'ensemble des possibilités d'expression partagé
par un groupe d'individus. Les langages servant aux ordinateurs
à communiquer n'ont rien à voir avec des langages
informatiques, on parle dans ce cas de protocoles
de communication, 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 :o)
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 le terme
"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.
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.
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 qu'un 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,
...).
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).
Voici une liste non
exhaustive de langages informatiques existants :
| Langage |
Domaine d'application principal |
Compilé/interprété |
| ADA |
Le temps réél |
langage compilé |
| BASIC |
Comme son nom l'indique... |
langage interprété |
| C |
Programmation système |
langage compilé |
| C++ |
Programmation système
objet |
langage compilé |
| Cobol |
Gestion |
langage compilé |
| Fortran |
Calcul |
langage compilé |
| Java |
Programmation orientée
internet |
langage intermédiaire |
| MATLAB |
Calcul mathématique |
langage interprété |
| Mathematica |
Calcul mathématique |
langage interprété |
| LISP |
Intelligence artificielle |
langage intermédiaire |
| Pascal |
Enseignement |
langage compilé |
| Prolog |
Intelligence artificielle |
langage interprété |
| Perl |
Traitement de chaînes
de caractères |
langage interprété |
 
|