La programmation informatique se fait dans des langages compréhensibles par l’homme. Afin de pouvoir être exécuté par la machine, le code source d’un programme doit être traduit dans un langage que la machine est capable de comprendre.
Il existe de nombreux langages de programmation, que l’on classifie notamment selon le mode de traduction du code source en langage compréhensible par la machine.
Langage interprété
La traduction se fait en temps réel, lors de l’exécution. Dans ce cas, le langage est dit interprété et l’exécution du programme (script) nécessite la présence d’un interpréteur. L’un des avantages est qu’un même script peut être exécuté sur plusieurs plateformes différentes, en revanche la traduction (interprétation) du code à chaque exécution a un impact sur les performances.
Langage compilé
La traduction se fait “une fois pour toutes”. Dans ce cas, on parle de langage compilé. Le code source du programme est traduit par un compilateur qui génère un fichier exécutable. Cela impose donc de compiler le programme pour chaque plateforme de destination.
Langage semi-interprété
Un langage semi-interprété est traité par un interprète. Mais au lieu de traduire complètement le code source à chaque exécution, celui-ci est préalablement traduit dans un langage intermédiaire (bytecode) proche du langage machine, permettant ainsi de préserver de bonnes performances.
Attention, cette catégorisation est une simplification de la réalité car cette caractéristique n’est en fait pas inhérente au langage en lui même. Il existe à titre d’exemple des interpréteurs pour le langage C qui est communément admis comme étant un langage compilé. Toutefois, personne ne sera généralement choqué que l’on parle du langage C comme étant un langage compilé, puisque cette catégorisation reflète les usages.