web-dev-qa-db-fra.com

Scripting Language vs Langage de programmation

Quelqu'un peut-il expliquer la différence entre langage de script et langage de programmation s'il vous plaît?
Pouvez-vous également citer des exemples pour chacun? J'ai beaucoup cherché sur Google mais je trouve toujours les meilleures réponses de Stack Overflow.

331
Rahul Reddy

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 n'avez pas besoin de compiler un programme JavaScript avant de l'exécuter. Donc, JavaScript est parfois appelé langage de "script".

Cette ligne devient de plus en plus floue car la compilation peut être si rapide avec du matériel moderne et des techniques de compilation modernes. Par exemple, V8, le moteur JavaScript de Google Chrome et utilisé beaucoup en dehors du navigateur, compile en réalité le code JavaScript à la volée en code machine, plutôt que de l'interpréter. (En fait, V8 est un compilateur à deux phases qui optimise.)

Notez également que le fait qu'un langage soit un langage de "script" ou non peut être plus lié à l'environnement qu'au langage. Il n'y a aucune raison pour que vous ne puissiez pas écrire un interpréteur C et l'utiliser comme langage de script (et les gens l'ont). Il n'y a pas non plus de raison que vous ne puissiez pas compiler JavaScript en code machine et le stocker dans un fichier exécutable (et les utilisateurs l'ont). Le langage Ruby en est un bon exemple: l'implémentation d'origine a été entièrement interprétée (un langage de "script"), mais il existe maintenant plusieurs compilateurs.

Quelques exemples de langages de "script" (par exemple, les langages utilisés traditionnellement sans étape de compilation explicite):

  • Lua
  • JavaScript
  • VBScript et VBA
  • Perl

Et une petite quantité de ceux utilisés traditionnellement avec une étape de compilation explicite:

  • C
  • C++
  • Java (mais notez que Java est compilé en bytecode, qui est ensuite interprété et/ou recompilé à l'exécution)
  • Pascal

... et puis vous avez des choses comme Python qui se trouvent dans les deux camps: Python est largement utilisé sans étape de compilation, mais l'implémentation principale (CPython) le fait en compilant en bytecode on-the- voler et ensuite exécuter le bytecode dans une VM, et il peut écrire ce bytecode dans des fichiers (.pyc, .pyo) pour une utilisation sans recompilation.

Ce n'est que très très , si vous faites des recherches, vous pourrez en trouver beaucoup plus.

444
T.J. Crowder

Pour comprendre la différence entre un langage de script et un langage de programmation, il faut comprendre pourquoi les langages de script sont nés.

Initialement, il existait des langages de programmation écrits pour construire des programmes tels qu'Excel, Word, des navigateurs, des jeux, etc. Ces programmes étaient construits avec des langages tels que c et Java. Les heures supplémentaires, ces programmes nécessitaient un moyen pour les utilisateurs de créer de nouvelles fonctionnalités. Ils devaient donc fournir une interface à leur code octet, permettant ainsi aux langages de script de naître.

Un langage de script n’est généralement pas compilé et peut donc être exécuté dès que vous écrivez quelque chose de significatif. Par conséquent, Excel peut être construit en C++, mais il expose un langage de script appelé VBA pour permettre aux utilisateurs de définir des fonctionnalités. De même, les navigateurs peuvent être construits avec C++/Java, mais ils exposent un langage de script appelé javascript (sans aucun lien avec Java). Les jeux sont généralement construits avec C++ mais exposent un langage appelé Lua pour permettre aux utilisateurs de définir des fonctionnalités personnalisées.

Un langage de script se trouve généralement derrière un langage de programmation. Les langages de script ont généralement moins d'accès aux capacités natives des ordinateurs, car ils s'exécutent sur un sous-ensemble du langage de programmation d'origine. Un exemple ici est que Javascript ne pourra pas accéder à votre système de fichiers. Les langages de script sont généralement plus lents que les langages de programmation.

Bien que les langages de script aient un accès réduit et soient plus lents, ils peuvent être des outils très puissants. Un facteur qui attribue le succès à un langage de script est la facilité de mise à jour. Vous souvenez-vous de l'époque des Java applets sur le Web, il s'agit d'un exemple d'exécution d'un langage de programmation (Java) par rapport à un langage de script (javascript). À l’époque, les ordinateurs n’étaient pas aussi puissants et javascript n’était pas aussi mature. Les applets Java ont alors dominé les scènes. Mais les applets Java étaient gênants, ils demandaient à l'utilisateur de trier et de compiler le langage. Aujourd'hui, les Java applets sont presque éteints et Javascript domine la scène. Javascript est extrêmement rapide à charger car la plupart des composants du navigateur ont déjà été installés.

Enfin, les langages de script sont également considérés comme des langages de programmation (bien que certaines personnes refusent de l'accepter) - le terme que nous devrions utiliser ici est langage de script vs langage compilé.

98
Yang Li

Tous les langages de script sont des langages de programmation.

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

Si l'environnement est interprété, on parle généralement d'environnement de script.

61
Oded

Les différences deviennent de moins en moins importantes. Traditionnellement, les langages de script étendent les programmes existants ... Je pense que la définition principale de "script" est de faire référence à l'écriture d'un ensemble d'instructions à exécuter par une entité existante. Cependant, là où les langages de script ont commencé avec une syntaxe propriétaire et familière, la plupart de ceux qui prévalent de nos jours doivent une certaine relation à C.

Je pense que la distinction "interprété/compilé" est en réalité un symptôme d'extension d'un programme existant (avec un interpréteur intégré), plutôt qu'une différence intrinsèque. Ce qui préoccupe davantage les programmeurs et les profanes est: "que fait le programmeur?" Le fait qu'un programme soit interprété et un autre compilé a très peu d'importance pour déterminer la différence d'activité du créateur. Vous ne jugez pas un auteur si ses pièces sont plus souvent lues à haute voix ou interprétées sur scène, n'est-ce pas?

18
Eric Barker

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

Scripting Language: est un sous-ensemble non structuré du langage de programmation. Il est généralement interprété. il s'agit essentiellement de "scripts" pour faire d'autres choses. L'objectif principal n'est pas principalement de créer vos propres applications, mais de faire en sorte qu'une application existante agisse comme vous le souhaitez, par exemple. JavaScript pour les navigateurs, TCL etc.,

*** Mais il existe des situations dans lesquelles un langage de programmation est converti en interprète et un vice-vers semblable à use a un interpréteur C où vous pouvez utiliser le script 'C'. Les scripts sont généralement écrits pour contrôler un comportement d'application lorsque, en tant que langage de programmation, est utilisé pour créer des applications. Mais attention, la démarcation est de plus en plus floue jour après jour, comme un exemple de Python, cela dépend de la façon dont on utilise le langage.

12
saikumarm

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 lieu de cela, un autre programme (appelé l'interprète, exécute le programme et simule son comportement)
  2. Certains langages de programmation non scriptés (C, C++, Haskell et d'autres langages "compilés") sont compilés en code machine et sont ensuite exécutés.
8
jh314

Je suis en désaccord avec le fait que les langages utilisant des interprètes sont des langages de script et que celui qui est compilé est un langage de programmation. Nous pouvons développer un interprète ou un compilateur pour n'importe quelle langue. Un environnement interprété convient mieux aux scripts Web et facilite les choses, c'est pourquoi nous les avons.

Eh bien, j’ai l’impression qu’il n’ya pas de différence entre le langage de script et le langage de programmation. Il s’agit de faire le travail. En ce qui concerne les tâches Web, nous les appelons scripts Web prenant en compte une petite tâche. De cette manière, nous pouvons également appeler les tâches liées au système des scripts système ou OS et le langage de programmation que nous utilisons pour accomplir ces tâches en tant que langages de script système.

En outre, il est impossible d'empêcher l'écriture de code système au niveau de Python et de scripts Web en langage C (à condition de pouvoir créer la plate-forme et l'environnement requis). Mais tout ce qu’il faut, c’est trop d’efforts pouvant affecter la contrainte de temps pour un développement rapide et le peu de temps de latence réduit ne nous profitera pas beaucoup dans les scripts Web. Mais l'inverse n'est pas vrai si nous effectuons des tâches de niveau système en Python.

En bout de ligne: la sélection de la langue dépend de la nature de la tâche à exécuter et la discrimination d’une langue car le langage de script est un mythe.

4
paritosh mishra

Dans les langages de script tels que (JavaScript et anciennes versions PHP), nous utilisons les fonctions et méthodes fondamentales existantes pour effectuer notre travail. Prenons un exemple dans JavaScript nous pouvons utiliser ajax ou web-sockets uniquement s’ils sont pris en charge par le navigateur ou par des méthodes existantes ou dans le navigateur. Mais dans des langages tels que C ou C++, Java, nous pouvons écrire cette fonctionnalité à partir de zéro, même si aucune bibliothèque pour cette fonctionnalité n'est disponible, mais nous ne pouvons pas le faire en JavaScript.

pouvez-vous prendre en charge les sockets Web dans Internet Explorer 8 ou une version antérieure à l'aide de JavaScript Mais vous pouvez écrire un plug-in en C ou C++ ou Java qui peut ajouter une fonctionnalité Web socket à Internet Explorer 8.

Dans les langages de script, nous écrivons un code dans une séquence qui exécute les méthodes existantes dans une séquence pour compléter notre travail. La saisie de nombres et de formules dans une calculatrice numérique pour effectuer une opération est également un très bon exemple de langage de script. Nous devons noter que l'environnement de compilation/exécution au moment de l'exécution de chaque langage de script est toujours écrit dans un langage de programmation dans lequel nous pouvons ajouter davantage de fonctionnalités. et méthodes et peut écrire de nouvelles bibliothèques.

PHP C'est un langage qui est un peu la programmation et le script en noir et blanc. Nous pouvons ajouter de nouvelles méthodes en ajoutant des extensions compilées écrites dans un autre langage de haut niveau. Nous ne pouvons pas ajouter de fonctionnalités de haut niveau pour la mise en réseau ou la création de bibliothèques de traitement d'images directement en PHP.

P.S. Je suis vraiment désolé d’avoir tourné ma réponse autour de PHP JavaScript, mais j’utilise ces deux méthodes parce que j’ai une expérience considérable dans ces deux domaines.

4
Ravinder Payal

Je pense que ce que vous appelez la "différence" est en réalité une conséquence de la différence réelle.

La différence réelle est la cible du code écrit. Qui va exécuter ce code.

Un langage de script est utilisé pour écrire du code destiné à un logiciel. Il va automatiser les opérations sur ce système logiciel. Le script va être une séquence d'instructions au système logiciel cible.

Un langage de programmation cible le système informatique, qui peut être une machine réelle ou virtuelle. Les instructions sont exécutées par la machine.

Bien sûr, une vraie machine ne comprend que du code binaire, vous devez donc compiler le code d'un langage de programmation. Mais ceci est une conséquence du ciblage d’une machine au lieu d’un programme.

D'autre part, le système logiciel cible d'un script peut compiler le code ou l'interpréter. Est à la hauteur du logiciel.

Si nous disons que la vraie différence réside dans le fait que le logiciel soit compilé ou non, nous avons un problème car lorsque Javascript est exécuté en V8, il est compilé et lorsqu'il fonctionne dans Rhino, il ne l'est pas.

Cela devient plus confus puisque les langages de script ont évolué pour devenir très puissants. Ainsi, ils ne se limitent pas à créer de petits scripts pour automatiser les opérations sur un autre système logiciel. Vous pouvez créer toutes les applications les plus riches.

Le code Python cible un interpréteur afin que nous puissions dire qu'il "écrit" des opérations sur cet interpréteur. Mais lorsque vous écrivez du code Python, vous ne le voyez pas comme un script d'interpréteur, vous le voyez comme une application. L'interprète n'est là que pour coder à un niveau supérieur, entre autres. Donc, pour moi, Python est davantage un langage de programmation qu'un langage de script.

4
Damian Jose

Lorsque le monde était jeune et que dans le monde PC que vous avez choisi .exe ou .bat, la délimitation était simple. Les systèmes Unix ont toujours eu des scripts Shell (/ bin/sh,/bin/csh,/bin/ksh, etc.) et des langages compilés (C/C++/Fortran).

Pour différencier les rôles et les responsabilités, les langages compilés (souvent appelés langages de 3ème génération) étaient considérés comme des langages de "programmation" et les langages de "script" étaient ceux qui invoquaient un interprète (souvent appelés langages de 4ème génération). Les langages de script étaient souvent utilisés comme "colle" pour relier plusieurs commandes/programmes compilés, de sorte que l'utilisateur ne devait pas s'inquiéter d'une série d'étapes pour mener à bien sa tâche: ils développaient un fichier unique qui les délimitait. ils voulaient accomplir, et ceci est devenu un "script" que tout le monde peut suivre.

Plusieurs personnes/groupes ont écrit de nouveaux interprètes pour résoudre un problème particulier. awk est l'un des plus connus, et il a été principalement utilisé pour la recherche de motifs et l'application d'une série de transformations de données en entrée. Cela fonctionnait bien, mais le problème était limité. L'expansion de ce domaine était pratiquement impossible car le code source n'était pas disponible. Perl (Larry Wall, auteur principal/architecte) rédige des scripts au niveau supérieur - et a développé un interpréteur permettant à l'utilisateur non seulement d'exécuter des commandes système, de manipuler des données d'entrée et de sortie, de prendre en charge des variables sans type, mais également d'accéder à des API de niveau système Unix en tant que fonctions à partir des scripts eux-mêmes. C'était probablement l'un des premiers langages de script de haut niveau largement utilisés. C'est avec Perl (IMHO) que les langages de script ont traversé la ligne arbitraire et ajouté les capacités des langages de programmation.

Votre question portait spécifiquement sur Python. Parce que l'interprète python s'exécute sur un fichier texte contenant le code python, et que le code python peut être exécuté partout où il y a un python interprète, je dirais que c'est un langage de script (dans la même veine que Perl). Vous n'avez pas besoin de recompiler le fichier de commande utilisateur python pour chaque architecture d'OS/CPU différente (comme avec C/C++/Fortran), ce qui le rend nettement plus portable et plus facile à utiliser.

Le mérite de cette réponse revient à Jerrold (Jerry) Heyman. Discussion originale: https://www.researchgate.net/post/Is_Python_a_Programming_language_or_Scripting_Language

4
Kartik Chauhan

Mis à part la différence que le langage de script est interprété et le langage de programmation est compilé, il existe une autre différence comme ci-dessous, qui, je suppose, a été omise.

Un langage de script est un langage de programmation utilisé pour manipuler, personnaliser et automatiser les fonctionnalités d'un système existant. Dans de tels systèmes, des fonctionnalités utiles sont déjà disponibles via une interface utilisateur et le langage de script est un mécanisme permettant d’exposer cette fonctionnalité au contrôle des programmes.

Alors qu’un langage de programmation est généralement utilisé pour coder le système à partir de Scratch.

src ECMA

3
Sukrit Gupta

Langages scriptés

Les langages de script sont interprétés dans un autre programme. JavaScript est intégré dans un navigateur et interprété par ce dernier.

Exemples de langages de script

  1. JavaScript
  2. Perl
  3. Python

Avantages des langages de script:

  1. Simple - Les langages de script sont plus faciles à écrire que les langages de programmation.

  2. Moins de lignes de code (LOC)

Langues programmées

Les langages de programmation tels que Java sont compilés et ne sont pas interprétés de la même manière par une autre application.

Exemples de langages de programmation

  1. C
  2. C++ et
  3. Java

Plus de détails

3

Si nous voyons logiquement un langage de programmation et un langage de script, le pourcentage est identique à 99,09%. parce que nous utilisons les mêmes concepts tels que boucle, condition de contrôle, variable et ainsi de suite, nous pouvons donc affirmer que les deux sont identiques mais qu’il n’ya qu’une chose qui diffère entre eux: C/C++ et d’autres langages de programmation. Nous compilons le code avant exécution. mais dans PHP, JavaScript et un autre langage de script que nous n'avons pas besoin de compiler, nous l'exécutons directement dans le navigateur.

Merci Nitish K. Jha

2
NITISH KUMAR Jha

Les langages de script sont des langages de programmation que les gens considèrent comme des langages de script. C'est une catégorie artificielle sans limite claire et où chaque règle proposée comporte une exception.

Les règles classiques utilisées pour dire qu'un langage est un langage de script caractérisent, ne définissent pas. Si une langue respecte un certain nombre de règles, il y a de fortes chances qu'elle soit considérée comme un langage de script. Sinon, il y a de fortes chances que ce ne soit pas le cas. Les règles incluent généralement:

  • Il est destiné aux petits "scripts", pas aux grands programmes.
  • Il est intégré à une autre application, utilisée pour de petites modifications de cette application.
  • C'est interprété plutôt que compilé.
  • Il est destiné aux programmeurs débutants, pas aux professionnels.
  • Son nom se termine par "script".

J'ajouterais:

  • Un langage de script est un langage de programmation dans lequel presque toutes les erreurs sont détectées au moment de l'exécution.

C'est-à-dire que pourrait être un langage interprété.

Si un langage de programmation a un comportement significatif "au moment de la compilation", dans lequel il analyse le code et signale les erreurs sans exécuter le programme, comme les erreurs de type de C, Java ou C #, ce n'est probablement pas considéré comme un langage de script .

Traditionnellement, beaucoup de langages de script ont été interprétés directement à partir de la source, mais les plus populaires d'entre eux ont obtenu des implémentations plus performantes qui précompilent le code, comme les fichiers .pyc de Python, ou optimisant les moteurs JavaScript compilés en code natif avant exécution.

Si le langage pourrait être implémenté par un interpréteur, qui ne regarde que le code source tel qu'il est exécuté, il est alors probablement considéré comme un langage de script. Qu'il soit réellement implémenté de cette manière importe peu, mais s'il peut l'être, il ne peut pas non plus nécessiter une vérification approfondie du code lors de la compilation.

Si le langage fournit une sémantique statique utile qui permet de détecter des erreurs (autres que des erreurs de syntaxe) sans avoir à exécuter le programme, ce n'est probablement pas un langage de script.

Il y a toujours des exceptions, généralement basées sur la tradition autour d'une langue plutôt que sur une règle réelle. BASIC n’est généralement pas considéré comme un "langage de script", bien qu’il réponde à peu près à tous les critères que tout le monde a déjà utilisés pour le devenir. C'est pourquoi Visual Basic Script a dû ajouter le "script" au nom afin de se distinguer de Visual Basic, un "vrai" langage de programmation destiné aux programmes plus volumineux.

BASIC est également un ancien langage de programmation, comme COBOL et Fortran, qui existait bien avant l’attente d’une analyse statique d’un langage, et qui existait bien avant les "langages de script".

0
lrn