On appelle « langage informatique » un langage destiné à décrire l'ensemble
des actions consécutives qu'un ordinateur doit exécuter. Un langage informatique est ainsi une façon pratique pour nous (humains) de donner
des instructions à un ordinateur.
A contrario, le terme « langage naturel »
représente les possibilités d'expression
partagé par un groupe d'individus (par exemple l'anglais ou le français).
Les langages servant aux ordinateurs à communiquer entre eux 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 rigoureux:
À CHAQUE instruction correspond UNE action du processeur.
Le langage utilisé par le processeur est appelé langage machine.
Il s'agit des données telles qu'elles arrivent au processeur, constituées
d'une suite de 0 et de 1 (données binaire).
Le langage machine n'est ainsi pas compréhensible par l'être humain,
c'est pourquoi des langages intermédiaires, compréhensibles par l'homme, ont été
mis au point. Le code écrit dans ce type de langage est transformé en langage machine
pour être exploitable par le processeur.
L'assembleur est le premier langage informatique
qui ait été utilisé. Celui-ci
est très proche du langage machine mais reste compréhensible pour des développeurs.
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.
Le terme « portabilité » désigne l'aptitude d'un programme informatique
a être utilisé sur des machines de types différents. Pour pouvoir
utiliser un programme informatique écrit en assembleur sur un autre type de machine, il
sera parfois nécessaire de 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
- 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, appelé 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 |
Programmation basique à but éducatif |
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é |
PHP |
Développement de sites web dynamiques |
Langage interprété |
Prolog |
Intelligence artificielle |
Langage interprété |
Perl |
Traitement de chaînes de caractères |
Langage interprété |
|