Les langages de script sont des langages de programmation qui ne nécessitent pas d'étape de compilation explicite.
Par exemple, dans le cas normal, vous devez compiler un programme C avant de pouvoir l'exécuter. Mais dans le cas normal, vous ne devez pas compiler un programme JavaScript avant de l'exécuter. JavaScript est donc parfois appelé un langage de "script".
Cette ligne devient de plus en plus floue depuis que la compilation peut être si rapide avec le matériel moderne et les techniques de compilation modernes. Par exemple, V8, le moteur JavaScript de Google Chrome, également utilisé en dehors du navigateur, compile le code JavaScript à la volée en code machine, plutôt que de l'interpréter. (En fait, V8 est un compilateur biphasé optimisant).
Notez également que le fait qu'un langage soit un langage de "script" ou non peut dépendre davantage de l'environnement que du langage. Il n'y a aucune raison pour que vous ne puissiez pas écrire un interpréteur C et l'utiliser comme un langage de script (et des gens l'ont fait). Il n'y a pas non plus de raison pour que vous ne puissiez pas compiler JavaScript en code machine et le stocker dans un fichier exécutable (et les gens l'ont fait). Le langage Ruby en est un bon exemple : L'implémentation originale était entièrement interprétée (un langage de "script"), mais il existe maintenant de nombreux compilateurs pour ce langage.
Certains exemples de langages de "script" (par exemple, les langages qui sont traditionnellement utilisé sans étape de compilation explicite) :
- Lua
- JavaScript
- VBScript et VBA
- Perl
Et un petit nombre d'autres traditionnellement utilisé avec une étape de compilation explicite :
- C
- C++
- D
- Java (mais notez que Java est compilé en bytecode, qui est ensuite interprété et/ou recompilé au moment de l'exécution).
- Pascal
...et puis vous avez des choses comme Python qui se situent dans les deux camps : Python est largement utilisé sans étape de compilation, mais l'implémentation principale (CPython) le fait en compilant en bytecode à la volée et en exécutant ensuite le bytecode dans une VM, et il... puede écrire ce bytecode dans des fichiers ( .pyc
, .pyo
) pour une utilisation sans recompilation.
C'est juste un très peu, si vous faites quelques recherches vous pouvez trouver beaucoup plus.