2.1. Langages de programmation

Les langages de programmation se distinguent par de nombreuses caractéristiques, qui doivent être prises en compte lors du choix du langage.

2.1.1. Interprété et compilé

Dans un langage compilé, le code source n’est pas directement lisible par la machine : il est nécessaire de le compiler pour le transformer en langage machine. On obtient alors un exécutable qui constitue le programme. Notons qu’une vérification de la syntaxe est faite lors de la compilation.

L’exécutable compilé dépend de la plateforme (c’est à dire du système d’exploitation), et il est nécessaire de recompiler le programme à la moindre modification.

Au contraire, le code source d’un langage interprété est transformé à la volée par un interpréteur en langage machine, ce qui explique la plus grande portabilité de ces langages par rapport aux langages compilés.

Toutefois il est nécessaire que l’interpréteur soit présent sur chaque machine, sans quoi le programme ne pourra pas fonctionner.

D’une manière intermédiaire, il existe les langages semi-interprétés, dont le code source est compilé en bytecode. C’est ce bytecode qui sera interprété, plus rapidement que si le code source ne l’avait directement été lui-même.

Exemples :

  • interprété : PHP, Basic ;
  • compilé : C, C++ ;
  • semi-interprété : Java, Python.

2.1.2. Haut niveau et bas niveau

Le niveau d’un langage représente son degré d’abstraction : plus le niveau est haut, plus le langage est abstrait et compréhensible par l’humain.

Exemples :

  • haut niveau : Basic, Python ;
  • bas niveau : Assembler.

2.1.3. Typage

Il est nécessaire de déclarer manuellement le type de chaque variable dans les langages à typage statique. Par exemple en C, on aurait int number = 1 (définition de la variable number, qui est de type “entier” et qui se voit attribuer la valeur 1). De plus, dans un tel langage, le type d’une variable ne peut changer de lui-même en fonction du contexte.

Au contraire, dans les langages à typage dynamique, il n’est pas nécessaire de déclarer le type d’une variable. En Python, on pourra écrire number = 1, ce qui aura le même effet que le code plus haut en C, et, plus loin, number = 'c' après la dernière commande (number est cette fois-ci de type “chaine de caractères” et possède la valeur c), ce qui serait interdit en C.

Dans un langage à typage fort, il est impossible d’utiliser un type à la place d’un autre sans convertir explicitement l’objet. Au contraire, lorsque le typage est faible, un type peut aisément se substituer à un autre.

Par exemple en PHP (langage à typage faible et dynamique), on a

echo '1' + 1;

La sortie de ce programme sera ‘2’. Cela montre bien que l’on peut sommer une chaine de caractères et un nombre [1] : PHP convertit de lui-même la chaine de caractères en nombre car il juge cela adapté ici ; un tel programme en C ou en Python ne fonctionnerait pas.

Exemples :

  • typage statique : C, Java ;
  • typage dynamique : Python, PHP ;
  • typage fort : Python ;
  • typage faible : PHP.

Footnotes

[1]Voir le Chapitre Types de base pour plus d’informations sur les types.

Table des matières

Sujet précédent

2. Introduction

Sujet suivant

2.2. Paradigmes

Cette page