Question

Qu'est-ce qui fait d'un langage un langage de script? J'ai entendu certaines personnes dire & "Lorsqu'elles sont interprétées au lieu d'être compilées &". Cela ferait de PHP (par exemple) un langage de script. Est-ce le seul critère? Ou existe-t-il d'autres critères?

Voir aussi:

Était-ce utile?

La solution

Un langage de script est un langage que " scripts " d'autres choses à faire des choses. L'objectif principal n'est pas principalement de créer vos propres applications, mais plutôt de faire en sorte qu'une application existante agisse comme vous le souhaitez, par exemple. JavaScript pour les navigateurs, VBA pour MS Office.

Autres conseils

Simple. Lorsque je l’utilise, c’est un langage dynamique moderne. Quand vous l’utilisez, c’est simplement un langage de script!

Traditionnellement, quand on parle de script par rapport à la programmation, les scripts sont interprétés et les programmes compilés. Un langage peut être exécuté de différentes manières - interprété ou compilé (en bytecode ou code machine). Cela ne crée pas une langue ni une autre.

À certains yeux, la façon dont vous utilisez un langage en fait un langage de script (par exemple, les développeurs de jeux développant principalement en C ++ écrivent les objets dans Lua) . Encore une fois, les lignes sont floues: un langage peut être utilisé pour la programmation par une personne et le même langage peut être utilisé pour un langage de script par une autre.

Ceci est tiré de l'article wikipedia sur les langages de script:

  

Un langage de script, un langage de script ou un langage d'extension est un langage de programmation qui permet de contrôler une ou plusieurs applications logicielles. " Scripts " sont distincts du code principal de l'application, car ils sont généralement écrits dans une langue différente et sont souvent créés ou au moins modifiés par l'utilisateur final. Les scripts sont souvent interprétés à partir de code source ou de bytecode, alors que les applications qu’ils contrôlent sont traditionnellement compilées en code machine natif. Les langages de script sont presque toujours intégrés aux applications qu’ils contrôlent.

Vous remarquerez l'utilisation de & "habituellement &"; & "souvent &"; & "traditionnellement &"; et " presque toujours " - ils vous indiquent tous qu'il existe un non jeu d'attributs distincts qui font d'un langage spécifique un " langage de script ".

  

& "Un script est ce que vous donnez aux acteurs.   Un programme est ce que vous donnez à la   public. " - Larry Wall

Je ne pense vraiment pas qu'il y ait beaucoup plus de différence. Le soi-disant & Quot; scripting & Quot; les langues sont souvent compilées - très rapidement et à l'exécution. Et une partie de la & Programmation; la programmation & Quot; les langues sont également compilées au moment de l'exécution (pensez à JIT) et à la première étape de & "compilation" & "; est la vérification de la syntaxe et la résolution des ressources.

Ne vous attardez pas dessus, ce n'est vraiment pas important.

Ma définition serait un langage généralement distribué comme source plutôt que comme binaire.

Il y a beaucoup de réponses possibles à cette question.

Premièrement: il n’est pas vraiment question de la différence entre un langage de script et un langage de programmation, puisqu'un langage de script est un langage de programmation. C’est davantage une question de savoir quels traits font de certains langages de programmation un langage de script, alors qu’un autre langage de programmation n'est pas un langage de script.

Deuxièmement: il est vraiment difficile de dire ce qu'est un langage XYZ, que ce soit XYZ & "Scripting &", & "Programmation fonctionnelle &", & "; programmation orientée objet " ou qu'avez-vous. La définition de ce que & Quot; programmation fonctionnelle & Quot; est, est assez clair, mais personne ne sait ce qu'est un & "langage de programmation fonctionnel &"; est.

La programmation fonctionnelle ou la programmation orientée objet programme des styles ; vous pouvez écrire dans un style fonctionnel ou orienté objet dans pratiquement toutes les langues. Par exemple, le commutateur de système de fichiers virtuel Linux et le modèle de pilote Linux sont fortement orientés objet, même s'ils sont écrits en C, alors que beaucoup de code Java ou C # que vous voyez sur le Web est très procédural et pas du tout . OTOH, j’ai vu du code Java très fonctionnel.

Ainsi, si la programmation fonctionnelle et la programmation orientée objet ne sont que des styles pouvant être créés dans n'importe quel langage , comment définir un langage de programmation & "; orienté objet " ;? Vous pourriez dire qu'un langage de programmation orienté objet est un langage qui permet une programmation orientée objet. Mais ce n’est pas vraiment une définition: tous tous les langages permettent la programmation orientée objet, donc tous les langages sont orientés objet? Donc, vous dites qu’un langage est orienté objet, s’il vous oblige à programmer dans un style orienté objet. Mais ce n’est pas vraiment une définition non plus: tous les langages permettent la programmation fonctionnelle, donc le langage non est orienté objet?

Donc, pour moi, j'ai trouvé la définition suivante:

  

Un langage est un langage de script (langage orienté objet / langage fonctionnel) s'il les deux

     
      
  • facilite l’écriture de scripts (programmation orientée objet / fonctionnelle), c’est-à-dire non seulement le permet , mais le rend facile et naturel et contient des fonctionnalités qui aident à cela, ET
  •   
  • vous encourage et à vous guider vers les scripts (programmation orientée objet / programmation fonctionnelle).
  •   

Ainsi, après cinq paragraphes, je suis arrivé à: & "Un langage de script est un langage de script &"; Quelle belle définition. PAS.

Évidemment, nous devons maintenant examiner la définition de & "script" & ";

C’est là que se situe le troisième problème: alors que le terme & "Programmation fonctionnelle" & "; est bien défini et il ne s’agit que du terme & "; langage de programmation fonctionnel &"; c'est problématique, malheureusement avec les scripts, les deux le terme & "scripting &"; et le terme " langage de script " sont mal définis.

Eh bien, premièrement, écrire un script est une programmation . C'est juste une sorte de programmation spéciale. IOW: chaque script est un programme, mais tous les programmes ne sont pas un script; l'ensemble de tous les scripts est un sous-ensemble approprié de l'ensemble de tous les programmes.

À mon avis, ce qui distingue les scripts de script, c’est que & # 8230;

  

Les scripts manipulent en grande partie des objets qui

     
      
  • n'ont pas été créés par le script,
  •   
  • a une durée de vie indépendante du script et
  •   
  • vit en dehors du domaine du script.
  •   
     

De plus, les types de données et les algorithmes utilisés ne sont généralement pas définis par le script, mais par le outsid.e environnement.

Pensez à un script shell: les scripts shell manipulent généralement des fichiers, des répertoires et des processus. La majorité des fichiers, des répertoires et des processus de votre système n'ont probablement pas été créés par le script en cours d'exécution. Et ils ne disparaissent pas à la sortie du script: leur durée de vie est totalement indépendante du script. Et ils ne font pas vraiment partie du script, ils font également partie du système. Vous n'avez pas commencé votre script en écrivant des File et Directory classes, ces types de données ne vous concernent pas: vous supposez simplement qu'ils sont là et vous ne savez même pas (vous n'avez pas besoin non plus savoir) comment ils travaillent. Et vous n'implémentez pas non plus vos propres algorithmes, par exemple. Pour parcourir des répertoires, vous utilisez simplement find au lieu de mettre en œuvre votre propre recherche en largeur d'abord.

En bref: un script s’attache à un système plus grand qui existe indépendamment du script, manipule une petite partie du système puis se ferme.

Ce système plus important peut être le système d’exploitation dans le cas d’un script shell, le DOM du navigateur dans le cas d’un script de navigateur, un jeu (par exemple, World of Warcraft avec Lua ou Second Life avec le langage de script Linden), une application ( exemple, le langage AutoLisp pour les macros AutoCAD ou Excel / Word / Office), un serveur Web, un pack de robots ou autre chose.

Notez que l'aspect script est complètement orthogonal à tous les autres aspects des langages de programmation: un langage de script peut être fortement ou faiblement typé, strictement ou faiblement typé, typé statiquement ou dynamiquement, nominalement, structurellement ou en code, même être non typé. Cela peut être impératif ou fonctionnel, orienté objet, procédural ou fonctionnel, strict ou paresseux. Ses implémentations peuvent être interprétées, compilées ou mixées.

Par exemple, Mondrian est un langage de script fonctionnel paresseux à typage strict avec une implémentation compilée.

Cependant, tout cela n'a plus sa raison d'être, car la façon dont le terme langage de script est vraiment utilisé dans le monde réel n'a rien à voir avec ce qui précède. Il est le plus souvent utilisé simplement comme une insulte, et la définition est plutôt simple, voire simpliste:

  
      
  • réel langage de programmation: mon langage de programmation
  •   
  • langage de script: votre langage de programmation
  •   

Cela semble être la façon dont le terme est le plus souvent utilisé.

C'est comme le porno, tu le sais quand tu le vois. La seule définition possible d'un langage de script est la suivante:

A language which is described as a scripting language.

Un peu circulaire, n'est-ce pas? (Au fait, je ne plaisante pas).

En principe, rien ne fait d’un langage un langage de script, si ce n’est qu’on l’appelle tel, en particulier de ses créateurs. Les principaux langages de script modernes sont PHP, Perl, JavaScript, Python, Ruby et Lua. Tcl est le premier langage de script moderne majeur (ce n’était pas le premier langage de script, j’oublie ce que c’est, mais j’ai été surpris d’apprendre qu’il était antérieur à Tcl).

Je décris les fonctionnalités des principaux langages de script dans mon document :

 A Practical Solution for Scripting Language Compilers
 Paul Biggar, Edsko de Vries and David Gregg
 SAC '09: ACM Symposium on Applied Computing (2009), (March 2009)

La plupart sont typés et interprétés de manière dynamique, et la plupart n'ont pas de sémantique définie en dehors de leur implémentation de référence. Cependant, même si leur implémentation majeure devient compilée ou mise en JIT, cela ne change rien à la & "; Nature &"; de la langue.

La seule question qui reste est de savoir comment savoir si un nouveau langage est un langage de script. Eh bien, si cela s'appelle un langage de script, c'est bien un. Donc, Factor est un langage de script (ou du moins c'était à l'époque de son écriture), mais, disons, Java n'est pas.

" Langage de script " est un de ces concepts flous qui peuvent signifier beaucoup de choses. Cela fait généralement référence au fait qu’il existe un processus en une étape qui vous amène du code source à l’exécution.

Par exemple, en Perl, vous faites: perl my_source.pl

Étant donné les critères ci-dessus, PHP est un langage de script (même si vous pouvez avoir un processus de compilation & "; &"; par exemple, lorsque vous utilisez le Zend Encoder pour & "protéger &"; le code source).

PS. Les langages de script sont souvent (mais pas toujours) interprétés. De plus, souvent (mais pas toujours) les langages de script sont typés de manière dynamique.

Tous les langages de script sont des langages de programmation. Donc, à proprement parler, il n'y a pas de différence.

Le terme ne fait référence à aucune propriété fondamentale du langage, il fait référence à l’utilisation typique du langage. Si l’utilisation typique est d’écrire des programmes courts qui font principalement des appels à du code préexistant et un traitement simple sur les résultats (c’est-à-dire, si l’utilisation typique est d’écrire des scripts ), un langage de script.

Je pense que M. Roberto Ierusalimschy a une très bonne réponse ou la question dans "Programmation en Lua":

  

Cependant, le trait distinctif de   langages interprétés est pas qu'ils   ne sont pas compilés, mais que tout   le compilateur fait partie du langage   runtime et que, par conséquent, il est   possible (et facile) d'exécuter du code   généré à la volée

Une division est

  • script = interprété dynamiquement
  • normal = compilé

Un langage interprété dynamiquement est interprété à l'exécution, tandis qu'un langage compilé est compilé avant exécution.

J'ajouterais que, comme l'a souligné J & # 246; rg, la distinction interprété / compilé n'est pas une caractéristique du langage, mais du moteur d'exécution.

Vous pourriez également être intéressé par cette explication du système de types , qui est liée et se concentre sur plus sur l'aspect de la langue, au lieu du moteur d'exécution. La plupart des langages de script sont typés de manière dynamique, alors que & Quot; normal & Quot; les langues sont généralement typées statiquement.

En général, la division des langages statiques par rapport aux langages à typage dynamique est mieux définie et a plus d’incidences sur la facilité d’utilisation du langage.

Un langage de script est généralement :

.
  1. Dactylographié dynamiquement
  2. Interprété, mettant très peu l'accent sur les performances, mais bonne portabilité
  3. Nécessite beaucoup moins de code du code chaud , ce qui permet un prototypage très rapide
  4. Est utilisé pour les petites tâches, convient pour l'écriture d'un seul fichier afin d'exécuter des & scripts & ";
  5. utiles.

Bien qu'un langage sans script soit généralement :  1. Statiquement tapé  2. Compilé, en mettant l'accent sur la performance  3. Nécessite plus de code passe-partout, ce qui ralentit le prototypage mais accroît la lisibilité et la maintenabilité à long terme  4. Utilisé pour les grands projets, s'adapte à de nombreux modèles de conception

Mais il s’agit plutôt d’une différence historique de nos jours, à mon avis. Javascript et Perl ont été écrits avec des scripts simples et de petite taille, alors que C ++ a été écrit avec des applications complexes. mais les deux peuvent être utilisés dans les deux sens. Et de nombreux langages de programmation, qu’ils soient modernes ou anciens, brouillent quand même la ligne (et elle était floue au départ!).

Ce qui est triste, c’est que j’ai connu quelques développeurs qui répugnent à ce qu’ils perçoivent comme des & "langages de script &"; pensant qu’ils sont plus simples et moins puissants. Mon opinion est que vieux cliché - utiliser le bon outil pour le travail.

À l’origine, les langages de script étaient considérés comme un mécanisme de contrôle pour les applications écrites dans un langage de programmation strict. Les programmes compilés ne pouvant pas être modifiés au moment de l’exécution, les scripts offrent aux utilisateurs une plus grande souplesse.

Plus particulièrement, le script shell automatisait les processus du noyau du système d'exploitation (traditionnellement AppleScript sur Mac); un rôle qui passa de plus en plus dans les mains de Perl, puis dans Python ces derniers temps. J'ai vu Scheme (en particulier dans son implémentation Guile) utilisé pour déclarer des scènes de lancer de rayons; et récemment, Lua est très populaire en tant que langage de programmation pour les jeux de script - au point que la seule chose codée en dur dans de nombreux nouveaux jeux est le moteur graphique / physique, alors que toute la logique du jeu est codée en Lua. De la même manière, JavaScript a été conçu pour consigner le comportement d’un navigateur Web.

Les langues émancipées; personne ne pense maintenant au système d'exploitation en tant qu'application (ou y pense beaucoup), et de nombreux langages de script ont commencé à être utilisés pour écrire leurs propres applications complètes. Le nom lui-même est devenu sans signification et s'est étendu à de nombreux langages interprétés utilisés de nos jours, qu'ils soient conçus pour être interprétés ou non depuis un autre système.

Cependant, " langages de script " n’est certainement pas synonyme de " langages interprétés " - Par exemple, BASIC a été interprété pendant la majeure partie de sa vie (c'est-à-dire avant de perdre son acronimicité et de devenir Visual Basic), mais personne ne la considère vraiment comme un script.

MISE À JOUR: Lisez les documents dont vous disposez normalement à sur Wikipedia .

Premier point, un langage de programmation n'est pas un " langage de script " ou quelque chose d'autre. Il peut s'agir d'un & Quot; langage de script & Quot; et autre chose.

Deuxième point, le réalisateur du langage vous dira s’il s’agit d’un langage de script.

Votre question devrait se lire & "Dans quelles implémentations un langage de programmation peut-il être considéré comme un langage de script? &", pas & "; Quelle est la différence entre un langage de script et un langage de programmation? & Il n'y a pas d'entre.

Pourtant, je considérerai un langage comme un langage de script s’il est utilisé pour fournir une sorte de middleware. Par exemple, je considérerais que la plupart des implémentations de JavaScript sont un langage de script. Si JavaScript était exécuté dans le système d'exploitation, pas dans le navigateur, il ne s'agirait pas d'un langage de script. Si PHP fonctionne à l'intérieur d'Apache, c'est un langage de script. S'il est exécuté à partir de la ligne de commande, ce n'est pas le cas.

Selon moi, un langage de script est tout ce qui ne nécessite pas d’étape de compilation. La principale caractéristique du point de vue des programmeurs est la suivante: vous éditez le code et l’exécutez immédiatement.

Je considérerais donc JavaScript et PHP comme des langages de script, alors que ActionScript 3 / Flex n'est pas vraiment.

Mon ami et moi venons d'avoir cet argument: quelle est la différence entre un langage de programmation et un langage de script.

Un argument populaire est que les langages de programmation sont compilés et les langages de script sont interprétés - Je pense cependant que cet argument est complètement faux ... pourquoi?

  1. Chakra & amp; V8 (les moteurs JavaScript de Microsoft et de Google) compilent le code avant exécution
  2. QBasic est interprété - cela fait-il de Qbasic un " scripting " langue?

Sur cette base, voici mon argument en faveur de la différence entre un langage de programmation et un langage de script:

Un langage de programmation s'exécute au niveau de la machine et a accès à la machine elle-même (mémoire, graphiques, son, etc.).

Un langage de script utilise du sable et n’a accès qu’aux objets exposés dans le bac à sable. Il n’a pas d’accès direct à la machine sous-jacente.

Dans Mon opinion, je dirais que les langages interprétés dynamiquement tels que PHP, Ruby, etc ... sont toujours & "normaux" & ";" les langues. Je dirais que des exemples de & Quot; scripting & Quot; les langues sont des choses comme bash (ou ksh ou tcsh ou autre) ou sqlplus. Ces langages sont souvent utilisés pour enchaîner les programmes existants d’un système en une série de commandes cohérentes et connexes, telles que:

  1. copier le texte A.txt dans / tmp / work /
  2. exécuter le processus de nettoyage nocturne sur le serveur de base de données
  3. enregistrez les résultats et envoyez-les au système

Je dirais donc que la différence (pour moi, en tout cas) réside davantage dans la façon dont vous utilisez le langage. Des langages comme PHP, Perl, Ruby pourraient être utilisés comme & "Langages de script &"; Mais je les vois généralement utilisés comme & "Langages normaux &"; (sauf Perl qui semble aller dans les deux sens.

Je vais juste aller de l'avant et migrer ma réponse de la question en double

Le nom " Langage de script " s'applique à un rôle très spécifique: le langage dans lequel vous écrivez des commandes à envoyer à une application logicielle existante. (comme un film ou un film traditionnel & "; script &");

Par exemple, il était une fois les pages Web HTML ennuyeuses. Ils étaient toujours statiques. Puis un jour, Netscape se dit & "Hey, si on laisse le navigateur lire et exécuter de petites commandes dans la page? &"; Et comme ça, Javascript a été formé.

Une commande javascript simple est la commande alert(), qui indique / commande au navigateur (une application logicielle) qui lit la page Web pour afficher une alerte.

Maintenant, <script> est-il lié, de quelque manière que ce soit, au C ++ ou à un langage de code utilisé par le navigateur utilise pour afficher l'alerte? Bien sûr que non. Quelqu'un qui écrit & Quot; alert () & Quot; sur une page .html ne comprend pas comment le navigateur affiche l’alerte. Il est juste en train d'écrire une commande que le navigateur interprétera.

Voyons le code javascript simple

<script>
var x = 4
alert(x)
</script>

Ce sont des instructions qui sont envoyées au navigateur, que le navigateur interprète lui-même. Le langage de programmation utilisé par le navigateur pour définir une variable sur 4 et le mettre en alerte ... il n’a aucun lien avec javascript.

Nous appelons cette dernière série de commandes un " script " (c'est pourquoi il est entouré de <=> balises). Simplement par la définition de & "Script &"; Au sens traditionnel du terme: une série d’instructions et de commandes envoyées aux acteurs . Tout le monde sait qu'un scénario (un script de film), par exemple, est un script.

Le scénario (script) n'est pas les acteurs, ni la caméra, ni les effets spéciaux. Le scénario leur dit simplement quoi faire.

Qu'est-ce qu'un langage de script , exactement?

Il existe de nombreux langages de programmation qui ressemblent à différents outils dans une boîte à outils; certaines langues ont été conçues spécifiquement pour être utilisées comme scripts.

Javasript est un exemple évident. il existe très peu d'applications Javascript qui n'entrent pas dans le domaine des scripts.

ActionScript (le langage utilisé pour les animations Flash) et ses dérivés sont des langages de script, en ce sens qu'ils émettent simplement des commandes pour le lecteur / interprète Flash. Bien sûr, il existe des abstractions telles que la programmation orientée objet, mais tout cela n’est qu’un moyen d’atteindre le but recherché: envoyez des commandes au lecteur flash.

Python et Ruby sont couramment utilisés comme langages de script. Par exemple, j’ai travaillé une fois pour une société qui utilisait Ruby pour écrire des commandes dans un navigateur qui ressemblait à, & "; Allez sur ce site, cliquez sur ce lien ... &"; faire des tests automatisés de base. Je n'étais pas un & Quot; développeur de logiciels & Quot; par tous les moyens, à cet emploi. Je viens d'écrire des scripts qui envoyaient des commandes à l'ordinateur pour envoyer des commandes au navigateur.

En raison de leur nature, les langages de script sont rarement "compilés", c’est-à-dire traduits en code machine et lus directement par l’ordinateur.

Même les applications graphiques créées à partir de Python et de Ruby sont des scripts envoyés à une API écrite en C ++ ou en C. Elle indique à l'application C ce qu'il faut faire.

Il y a une ligne de vague, bien sûr. Pourquoi ne pouvez-vous pas dire que Machine Language / C sont des langages de script, car ce sont des scripts que l’ordinateur utilise pour s’interfacer avec les cartes / puces / cartes graphiques de base?

Il y a quelques lignes que nous pouvons tracer pour clarifier:

  1. Lorsque vous pouvez écrire un langage de script et l'exécuter sans & "Compiler &", c'est plutôt une sorte de script à script direct. Par exemple, vous n'avez rien besoin de faire avec un scénario pour dire aux acteurs quoi faire avec. Il est déjà là, utilisé tel quel. Pour cette raison, nous exclura les langages compilés des langages de script, même s’ils peuvent être utilisés à des fins de script dans certains cas.

  2. Le langage de script implique des commandes envoyées à une application logicielle complexe ; c'est la raison pour laquelle nous écrivons des scripts en premier lieu - vous n'avez donc pas besoin de connaître la complexité du fonctionnement du logiciel pour lui envoyer des commandes. Ainsi, les langages de script ont tendance à être des langages qui envoient des commandes (relativement) simples à des applications logicielles complexes ... Dans ce cas, le langage de la machine et le code d'assemblage ne le réduisent pas.

Puis-je suggérer que les langages de script ont été un terme que beaucoup de gens quittent. Je dirais que cela se résume principalement aux langages compilés et aux langages dynamiques de nos jours.

Je veux dire que vous ne pouvez pas vraiment dire quelque chose comme Python, ou Ruby sont & "scriptés &"; langues à notre époque (vous avez même des éléments tels que IronPython et JIT-your -favorite-language , la différence est encore plus floue).

Pour être honnête, personnellement, je ne pense pas que PHP soit un langage de script. Je ne m'attendrais pas à ce que les gens aiment catégoriser PHP différemment de Java par exemple.

Les langages de script ont tendance à s'exécuter dans un moteur de script faisant partie d'une application plus grande. Par exemple, JavaScript s'exécute dans le moteur de script de votre navigateur.

Un langage de script est un langage qui est interprété chaque fois que le script est exécuté. Cela implique de disposer d'un interprète et est très lisible par l'homme. Pour être utile, un langage de script est facile à apprendre et à utiliser.

Chaque langage compilable peut être transformé en langage de script et vice-versa, tout dépend de la mise en oeuvre d'un interpréteur ou d'un compilateur, par exemple, le C ++ a un interpréteur de sorte qu'il peut être appelé langage de script s'il est utilisé de la sorte (peu pratique C ++ est un langage très complexe), l’un des langages de script les plus utiles à l’heure actuelle est Python ...

Donc, pour répondre à votre question, la définition est l'utilisation d'un interpréteur pour exécuter des programmes scriptés simples et rapides, pour traiter des tâches simples ou des applications prototypes, l'utilisation la plus puissante des langages de script consiste à inclure la possibilité pour chaque utilisation. pour étendre une application compilée.

Je préfère que les gens n'utilisent pas le terme & "; langage de script &"; comme je pense que cela diminue l'effort. Prenez un langage comme Perl, souvent appelé & Quot; langage de script & Quot;.

.
  • Perl est un langage de programmation!
  • Perl est compilé comme Java et C ++. C'est juste compilé beaucoup plus vite!
  • Perl a des objets, des espaces de noms et des fermetures.
  • Perl a des IDE, des débogueurs et des profileurs.
  • Perl a une formation, un soutien et une communauté.
  • Perl, ce n’est pas que du Web. Perl n'est pas simplement un administrateur système. Perl n'est pas seulement le ruban adhésif d'Internet.

Pourquoi devons-nous même faire la distinction entre un langage compilé tel que Java et Ruby qui ne l’est pas? Quelle est la valeur de l'étiquetage?

Pour plus d'informations à ce sujet, voir http://xoa.petdance.com/Stop_saying_script .

Une frappe forte (par rapport à frappe faible ). Les langues de script sont souvent mal typées , ce qui permet d'écrire plus rapidement de petits programmes. Pour les gros programmes, c'est un inconvénient car cela empêche le compilateur / interprète de trouver certains bogues de manière autonome, ce qui rend très difficile la refactorisation du code.

Les langages de script sont des langages de programmation où les programmes sont généralement livrés aux utilisateurs finaux sous une forme textuelle lisible et où il existe un programme pouvant apparemment exécuter ce programme directement. (Le programme peut très bien compiler le script en interne; ce n'est pas pertinent ici car il n'est pas visible pour l'utilisateur.)

Il est relativement courant pour les langages de script de pouvoir prendre en charge une session interactive dans laquelle les utilisateurs peuvent simplement saisir leur programme et le faire exécuter immédiatement. En effet, il s’agit d’une simple extension de l’exigence essentielle du premier paragraphe; La principale exigence supplémentaire est l’ajout d’un mécanisme permettant de déterminer le moment où une instruction saisie est terminée afin de pouvoir l’envoyer au moteur d’exécution.

Pour une question légèrement différente. Un langage de script est un langage de programmation, mais un langage de programmation n'est pas nécessairement un langage de script. Un langage de script est utilisé pour contrôler ou écrire un système. Ce système pourrait être un système d'exploitation où le langage de script serait bash. Le système pourrait être un serveur Web avec PHP le langage de script. Les langages de script sont conçus pour occuper un créneau spécifique; ce sont des langues spécifiques à un domaine. Les systèmes interactifs ont interprété les langages de script, donnant à penser que les langages de script sont interprétés; cependant, il s’agit d’une conséquence du système et non du langage de script lui-même.

Un langage de script est un langage qui configure ou étend un programme existant.
Un langage de script est un langage de programmation.

La définition de " langage de script " est assez floue. Je me baserais sur les considérations suivantes:

  1. Les langages de script ne comportent généralement pas d'étapes de compilation visibles par l'utilisateur. En règle générale, l'utilisateur ne peut exécuter que des programmes en une seule commande.

  2. Les programmes dans les langages de script sont normalement transmis sous forme source.

  3. Les langages de script ont normalement des exécutions qui sont présentes sur un grand nombre de systèmes, et les exécutions peuvent être installées facilement sur la plupart des systèmes.

  4. Les langages de script ont tendance à être multi-plateformes et non spécifiques à une machine.

  5. Les langages de script facilitent l’appel à d’autres programmes et l’interface avec le système d’exploitation.

  6. Les langages de script sont généralement facilement incorporables dans des systèmes plus grands écrits dans des langages de programmation plus conventionnels.

  7. Les langages de script sont normalement conçus pour faciliter la programmation et beaucoup moins tenir compte de la vitesse d'exécution. (Si vous souhaitez une exécution rapide, il est généralement conseillé de coder les parties qui prennent beaucoup de temps en C, puis d’intégrer le langage dans le C ou d’appeler des bits C depuis le langage.)

Certaines des caractéristiques énumérées ci-dessus sont valables pour les implémentations, auquel cas je fais référence aux implémentations les plus courantes. Il y a eu des interprètes en C, avec (AFAIK) sans étape évidente de compilation, mais ce n'est pas le cas de la plupart des implémentations en C. Vous pouvez certainement compiler un programme Perl en code natif, mais ce n’est pas comme cela qu’il est normalement utilisé. Certaines autres caractéristiques sont de nature sociale. Certains des critères ci-dessus se chevauchent quelque peu. Comme je l'ai dit, la définition est floue.

Je dirais que le langage de script est celui qui manipule lourdement des entités qu'il ne définit pas lui-même. Par exemple, JavaScript manipule les objets DOM fournis par le navigateur, PHP exploite une énorme bibliothèque de fonctions basées sur C, etc. Bien sûr, pas une définition précise, mais une façon de penser si elle le faisait.

S'il ne s'exécute pas sur le processeur, il s'agit d'un script pour moi. Si un interprète doit s’exécuter sur la CPU sous le programme, il s’agit d’un script et d’un langage de script.

Aucune raison de compliquer les choses?

Bien sûr, dans la plupart (99%) des cas, il est évident que le langage utilisé est un langage de script. Mais considérons qu'un ordinateur virtuel peut émuler le jeu d'instructions x86, par exemple. Cela ne ferait-il pas que le bytecode x86 devienne un langage de script s’il est exécuté sur une machine virtuelle? Et si quelqu'un devait écrire un compilateur qui transformerait le code Perl en un exécutable natif? Dans ce cas, je ne saurais plus comment appeler la langue elle-même. Ce serait la sortie qui importerait, pas la langue.

Encore une fois, je ne suis pas au courant de ce que cela a été fait. Je suis donc encore à l'aise pour appeler des langages de script interprétés.

Un script est un programme relativement petit . Un système est un programme relativement grand , ou une collection de programmes relativement grands.

Certains langages de programmation sont conçus avec des fonctionnalités que le concepteur de langages et la communauté de programmation considèrent comme utiles lors de la rédaction de programmes relativement petits. Ces langages de programmation sont appelés langages de script , par exemple. PHP.

De même, d'autres langages de programmation sont conçus avec des fonctionnalités que le concepteur de langages et la communauté de programmation considèrent comme utiles lors de la rédaction de programmes relativement volumineux. Ces langages de programmation sont appelés langages systèmes , par exemple. Java.

Maintenant, petits et grands programmes peuvent être écrits dans n’importe quelle langue. Un petit programme Java est un script. Par exemple, un & Quot; Hello World & Quot; Java; programme est un script, pas un système. Un gros programme, ou un ensemble de programmes, écrit en PHP est un système. Par exemple, Facebook, écrit en PHP, est un système et non un script.

Considérer une fonctionnalité linguistique unique comme un " test décisif " pour décider si le langage est le mieux adapté pour le script ou la programmation système est discutable. Par exemple, les scripts peuvent être compilés en code octet ou en code machine, ou ils peuvent être exécutés par interprétation directe de la syntaxe abstraite (AST).

Ainsi, un langage est un langage de script s'il est généralement utilisé pour écrire des scripts . Un langage de script peut être utilisé pour écrire des systèmes, mais de telles applications sont susceptibles d'être considérées comme douteuses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top