385 votes

Langage de script et langage de programmation

Quelqu'un peut-il expliquer la différence entre un langage de script et un langage de programmation ?
Pouvez-vous également donner quelques exemples pour chacun d'entre eux ? J'ai beaucoup cherché sur Google, mais je trouve toujours les meilleures réponses sur Stack Overflow.

522voto

T.J. Crowder Points 285826

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.

0 votes

Vous êtes donc en train de dire qu'un langage de script est quelque chose pour lequel vous avez besoin d'un interprète et non d'un compilateur ?

0 votes

@mg30rg : Je dis que compilé ou interprété ("scripting") est plus une question d'environnement que de langage.

1 votes

T.J.Crowder Pour être clair, je n'essaie pas de me disputer ici. J'ai désespérément besoin d'une réponse à la question originale, pour régler un débat. Je peux distinguer le scriptage du codage parce que je se sentir lequel je fais, mais ce n'est pas un argument valable, également cela ne fonctionne pas dans tous les cas, c'est-à-dire que j'ai clairement se sentir que je scripte quand j'écris un fichier de lots , un installer script ou un powershell script mais je ne suis pas vraiment sûr de savoir quand je crée une ASP o PHP serveur basé. Il y a aussi beaucoup de JavaScript "magique" ressemble à réel la programmation. (C'est quelque chose que je vois habituellement les autres faire.)

68voto

Oded Points 271275

Tous les langages de script sont des langages de programmation.

Les langages ne sont pas classés comme script ou non - cela dépend entièrement de l'environnement d'exécution.

Si l'environnement est interprété, il est communément appelé environnement de script.

12voto

sai kumar Points 37

Langage de programmation : Il est compilé en code machine et s'exécute sur le matériel du système d'exploitation sous-jacent.

Langage de script : Il s'agit d'un sous-ensemble non structuré du langage de programmation. Il est généralement interprété. Il s'agit essentiellement de "scripter" d'autres choses pour faire des choses. L'objectif principal n'est pas de créer vos propres applications, mais d'amener une application existante à agir comme vous le souhaitez, par exemple JavaScript pour les navigateurs, TCL, etc,

*** Mais il y a des situations où un langage de programmation est converti en interprète et vice-versa comme l'utilisation ont un interprète C où vous pouvez 'C' script. Les scripts sont généralement écrits pour contrôler le comportement d'une application alors que le langage de programmation est utilisé pour construire des applications. Mais attention, la démarcation s'estompe de jour en jour, comme dans le cas de Python, tout dépend de la façon dont on utilise le langage.

10voto

jh314 Points 12532

Les langages de script sont un sous-ensemble des langages de programmation.

  1. Les langages de script ne sont pas compilés en code machine par l'utilisateur (python, perl, shell, etc.). Au contraire, un autre programme (appelé l'interpréteur, exécute le programme et simule son comportement)
  2. Certains langages de programmation qui ne sont pas des scripts (C, C++, Haskell et autres langages "compilés") sont compilés en code machine et sont ensuite exécutés.

-3voto

johirbuet Points 31

Un langage de script est précompilé. Il ne nécessite donc pas d'étape de compilation. Par exemple, vous pouvez utiliser le javascript depuis votre machine sans le compiler. En revanche, un langage de programmation nécessite un compilateur pour être compilé. Sans compilateur, vous n'avez aucune utilité d'un programme écrit en C, C++ et autres langages de programmation. Vous devez d'abord compiler le langage avant d'utiliser ces codes. C'est la principale différence entre eux. Autrement, chaque langage de script est aussi une sorte de langage de programmation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X