it-swarm.com.de

Wann wird eine Sprache als Skriptsprache angesehen?

Was macht eine Sprache zu einer Skriptsprache? Ich habe einige Leute sagen hören, "wenn es interpretiert anstatt kompiliert wird". Das würde PHP (zum Beispiel) eine Skriptsprache machen. Ist das das einzige Kriterium oder gibt es andere Kriterien?

Siehe auch:

107
Sietse

Eine Skriptsprache ist eine Sprache, die andere Dinge "skript", um Dinge zu tun. Der Hauptfokus liegt nicht primär auf dem Erstellen eigener Apps, sondern darauf, dass eine vorhandene App so funktioniert, wie Sie es möchten, z. JavaScript für Browser, VBA für MS Office.

52
moffdub

Einfach. Wenn ich es benutze, ist es eine moderne dynamische Sprache, wenn Sie es benutzen, ist es nur eine Skriptsprache!

93
Martin Beckett

Wenn es um den Unterschied zwischen Skripten und Programmierung geht, werden Skripten traditionell interpretiert und Programme kompiliert. Eine Sprache kann auf verschiedene Arten ausgeführt werden - interpretiert oder kompiliert (zu Bytecode oder Maschinencode). Dies macht nicht eine Sprache die eine oder andere.

In einigen Augen macht die Art, wie Sie benutzen eine Sprache zu einer Skriptsprache (zum Beispiel werden Spieleentwickler, die hauptsächlich in C++ entwickeln, Skript die Objekte in Lua ). Auch hier sind die Zeilen unscharf - eine Sprache kann für eine Programmierung von einer Person verwendet werden und dieselbe Sprache kann für die Skriptsprache von einer anderen verwendet werden.

Dies ist aus dem wikipedia Artikel über Skriptsprachen:

Eine Skriptsprache, Skriptsprache oder Erweiterungssprache ist eine Programmiersprache, mit der eine oder mehrere Softwareanwendungen gesteuert werden können. "Skripte" unterscheiden sich vom Kerncode der Anwendung, da sie normalerweise in einer anderen Sprache geschrieben sind und häufig vom Endbenutzer erstellt oder zumindest geändert werden. Skripte werden häufig aus Quellcode oder Bytecode interpretiert, wohingegen die von ihnen gesteuerten Anwendungen traditionell zu systemeigenem Maschinencode kompiliert werden. Skriptsprachen sind fast immer in den von ihnen gesteuerten Anwendungen eingebettet.

Sie werden die Verwendung von "normalerweise", "häufig", "traditionell" und "fast immer" bemerken - diese alle sagen Ihnen, dass es keine Menge gibt von verschiedenen Attributen, die eine bestimmte Sprache zu einer "Skriptsprache" machen.

41
Oded

"Ein Drehbuch gibt man den Schauspielern. Ein Programm gibt man dem Publikum." - Larry Wall

Ich glaube wirklich, dass es keinen großen Unterschied mehr gibt. Die sogenannten "Scripting" -Sprachen werden oft kompiliert - nur sehr schnell und zur Laufzeit. Und einige der "Programmiersprachen" werden auch zur Laufzeit weiter kompiliert (denken Sie an JIT), und die erste Stufe des "Kompilierens" ist die Syntaxprüfung und die Ressourcenauflösung.

Lass dich nicht hängen, es ist wirklich nicht wichtig.

31
Clinton Pierce

Meine Definition wäre eine Sprache, die in der Regel eher als Quelle als als Binärdatei verbreitet wird.

25
kenny

Es ist wie beim Porno, du weißt es, wenn du es siehst. Die einzig mögliche Definition einer Skriptsprache ist:

A language which is described as a scripting language.

Ein bisschen kreisförmig, nicht wahr? (Übrigens scherze ich nicht).

Grundsätzlich gibt es nichts, was eine Sprache zu einer Skriptsprache macht, außer dass sie, insbesondere von ihren Erstellern, als solche bezeichnet wird. Die meisten modernen Skriptsprachen sind PHP, Perl, JavaScript, Python, Ruby und Lua. Tcl ist die erste große moderne Skriptsprache (es war allerdings nicht die erste Skriptsprache, die ich vergessen habe) was es ist, aber ich war überrascht zu erfahren, dass es vor Tcl).

Ich beschreibe die Funktionen der wichtigsten Skriptsprachen in meine Arbeit :

 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)

Die meisten werden dynamisch typisiert und interpretiert, und die meisten haben keine definierte Semantik außerhalb ihrer Referenzimplementierung. Selbst wenn ihre Hauptimplementierung kompiliert oder JIT-fähig wird, ändert dies nichts an der "Natur" der Sprache.

Die einzige verbleibende Frage ist, wie Sie feststellen können, ob eine neue Sprache eine Skriptsprache ist. Nun, wenn es eine Skriptsprache heißt, ist es eine. Also Factor ist eine Skriptsprache (oder war es zumindest, als diese geschrieben wurde), aber sagen wir, Java ist es nicht.

16
Paul Biggar

"Skriptsprache" ist eines dieser unscharfen Konzepte, die viele Dinge bedeuten können. Normalerweise bezieht es sich auf die Tatsache, dass es einen einstufigen Prozess gibt, der Sie vom Quellcode zur Ausführung führt.

In Perl machen Sie zum Beispiel: Perl my_source.pl

Angesichts der obigen Kriterien ist PHP eine Skriptsprache (obwohl Sie einen "Kompilierungs" -Prozess haben können, wenn Sie beispielsweise den Zend Encoder verwenden, um den Quellcode "zu schützen").

PS. Oft (aber nicht immer) werden Skriptsprachen interpretiert. Auch häufig (aber auch nicht immer) werden Skriptsprachen dynamisch eingegeben.

5
Grey Panther

Alle Skriptsprachen sind Programmiersprachen. Genau genommen gibt es keinen Unterschied.

Der Begriff bezieht sich nicht auf grundlegende Eigenschaften der Sprache, sondern auf das typische Verwendung der Sprache. Wenn die typische Verwendung darin besteht, kurze Programme zu schreiben, die hauptsächlich bereits vorhandenen Code aufrufen, und die Ergebnisse einfach zu verarbeiten (dh wenn die typische Verwendung darin besteht, Skripte zu schreiben), ist dies der Fall eine Skriptsprache.

5
Joren

Eine Abteilung ist

  • scripting = dynamisch interpretiert
  • normal = kompiliert

Eine dynamisch interpretierte Sprache wird zur Laufzeit interpretiert, während eine kompilierte Sprache vor der Ausführung kompiliert wird.

Ich sollte hinzufügen, dass, wie Jörg ausgeführt hat, die interpretierte/kompilierte Unterscheidung kein Merkmal der Sprache, sondern der Ausführungsmaschine ist.

Diese Erklärung von Typensystem könnte Sie auch interessieren. Sie ist verwandt und konzentriert sich eher auf den Sprachaspekt als auf die Ausführungsengine. Die meisten Skriptsprachen werden dynamisch eingegeben, wohingegen "normale" Sprachen meist statisch eingegeben werden.

Im Allgemeinen ist die Unterteilung von statisch und dynamisch typisierten Sprachen besser definiert und hat größere Auswirkungen auf die Verwendbarkeit der Sprache.

4

Ich denke, Herr Roberto Ierusalimschy hat eine sehr gute Antwort oder die Frage in "Programmieren in Lua":

Das Unterscheidungsmerkmal von interpretierten Sprachen besteht jedoch nicht darin, dass sie nicht kompiliert werden, sondern dass ein Compiler Teil der Sprachlaufzeit ist und es daher möglich (und einfach) ist, im laufenden Betrieb generierten Code auszuführen

4
Rodrigo Lopez

Erstens ist eine Programmiersprache keine "Skriptsprache" oder etwas anderes. Es kann eine "Skriptsprache" und etwas anderes sein.

Zweitens wird der Implementierer der Sprache Ihnen mitteilen, ob es sich um eine Skriptsprache handelt.

Ihre Frage sollte lauten: "In welchen Implementierungen wird eine Programmiersprache als Skriptsprache betrachtet?" Und nicht "Was ist der Unterschied zwischen einer Skriptsprache und einer Programmiersprache?". Es gibt kein dazwischen.

Ich werde jedoch eine Sprache als Skriptsprache betrachten, wenn sie verwendet wird, um eine Art Middleware bereitzustellen. Zum Beispiel würde ich die meisten Implementierungen von JavaScript als Skriptsprache betrachten. Wenn JavaScript im Betriebssystem und nicht im Browser ausgeführt würde, wäre dies keine Skriptsprache. Wenn PHP in Apache ausgeführt wird, handelt es sich um eine Skriptsprache. Wenn es über die Befehlszeile ausgeführt wird, ist dies nicht der Fall.

3
Marcus Adams

Mein Freund und ich hatten gerade dieses Argument: Was ist der Unterschied zwischen einer Programmiersprache und einer Skriptsprache.

Ein beliebtes Argument ist, dass Programmiersprachen kompiliert und Skriptsprachen interpretiert werden - ich halte dieses Argument jedoch für völlig falsch ... warum?

  1. Chakra & V8 (JavaScript-Engines von Microsoft und Google) kompilieren den Code vor der Ausführung
  2. QBasic wird interpretiert - macht dies QBasic zu einer "Skriptsprache"?

Auf dieser Basis ist dies mein Argument für den Unterschied zwischen einer Programmiersprache und einer Skriptsprache:

Eine Programmiersprache wird auf Maschinenebene ausgeführt und hat Zugriff auf die Maschine selbst (Speicher, Grafiken, Sound usw.).

Eine Skriptsprache ist sandboxed und hat nur Zugriff auf Objekte, die der Sandbox ausgesetzt sind. Es hat keinen direkten Zugriff auf den zugrunde liegenden Computer.

3
series0ne

Skriptsprachen wurden ursprünglich als Kontrollmechanismen für Anwendungen gedacht, die in einer harten Programmiersprache geschrieben sind. Die kompilierten Programme konnten zur Laufzeit nicht geändert werden, sodass die Benutzer durch Skripterstellung flexibel waren.

Insbesondere automatisierte Shell-Skript Prozesse im Betriebssystemkern (traditionell AppleScript auf Macs). Eine Rolle, die immer mehr in Perls Hände überging und in letzter Zeit wieder in Python). Ich habe gesehen, wie Schema (insbesondere in seiner Guile-Implementierung) verwendet wurde, um Raytracing-Szenen zu deklarieren. Lua ist als Programmiersprache für Skriptspiele sehr beliebt - bis zu dem Punkt, dass die Grafik-/Physik-Engine in vielen neuen Spielen das einzige hartcodierte Element ist, während die gesamte Spielelogik in Lua codiert ist dachte, das Verhalten eines Webbrowsers zu skripten.

Die Sprachen emanzipierten; Niemand denkt mehr über das Betriebssystem als Anwendung nach (oder denkt viel darüber nach), und viele frühere Skriptsprachen wurden verwendet, um eigene vollständige Anwendungen zu schreiben. Der Name selbst wurde bedeutungslos und verbreitete sich in vielen interpretierten Sprachen, die heute verwendet werden, unabhängig davon, ob sie für die Interpretation innerhalb eines anderen Systems ausgelegt sind oder nicht.

"Skriptsprachen" sind jedoch definitiv nicht gleichbedeutend mit "interpretierten Sprachen" - zum Beispiel wurde BASIC den größten Teil seines Lebens (dh bevor es seine Akronimität verlor und zu Visual Basic wurde) interpretiert, aber niemand denkt wirklich darüber nach Scripting.

UPDATE: Lesematerial wie gewohnt verfügbar bei Wikipedia .

3
Amadan

Ich betrachte eine Skriptsprache als etwas, das keinen offensichtlichen Kompilierungsschritt erfordert. Das Hauptmerkmal aus Sicht des Programmierers ist: Sie bearbeiten Code und führen ihn sofort aus.

Daher würde ich JavaScript und PHP als Skriptsprachen betrachten, während ActionScript / Flex nicht wirklich ist.

3
Scott Evernden

Eine Skriptsprache ist typisch:

  1. Dynamisch getippt
  2. Interpretiert, mit sehr wenig Wert auf Leistung, aber guter Portabilität
  3. Benötigt viel weniger Boilerplate-Code , was zu einem sehr schnellen Prototyping führt
  4. Wird für kleine Aufgaben verwendet und eignet sich zum Schreiben einer einzelnen Datei, um ein nützliches "Skript" auszuführen.

Eine Sprache, die kein Skript ist, ist normalerweise: 1. Statisch typisiert 2. Kompiliert, mit Schwerpunkt auf Leistung 3. Erfordert mehr Code für das Boilerplate, was zu langsamerem Prototyping, aber besserer Lesbarkeit und langfristiger Wartbarkeit führt 4 Passt sich für große Projekte vielen Designmustern an

Aber es ist heutzutage meiner Meinung nach eher ein historischer Unterschied. Javascript und Perl wurden mit kleinen, einfachen Skripten geschrieben, während C++ mit komplexen Anwendungen geschrieben wurde. aber beide können so oder so verwendet werden. Und viele Programmiersprachen, sowohl moderne als auch alte, verwischen sowieso die Linie (und es war an erster Stelle unscharf!).

Das Traurige ist, dass ich ein paar Entwickler kenne, die das, was sie als "Skriptsprachen" empfanden, verabscheuen und sie für einfacher und nicht so mächtig halten. Meine Meinung ist das alte Klischee - verwenden Sie das richtige Werkzeug für den Job.

3
Oak

Darf ich vorschlagen, dass Skriptsprachen ein Begriff sind, von dem sich viele Menschen entfernen. Ich würde sagen, es läuft heutzutage hauptsächlich auf kompilierte und dynamische Sprachen hinaus.

Ich meine, Sie können nicht wirklich so etwas wie Python sagen, oder Ruby sind heutzutage "Skriptsprachen" (Sie haben sogar Dinge wie IronPython und JIT-your -Favoritensprache, der Unterschied wurde noch mehr verwischt).

Um ehrlich zu sein, persönlich bin ich nicht mehr der Meinung, dass PHP eine Skriptsprache ist. Ich würde nicht erwarten, dass die Leute gerne PHP anders einordnen als in ihrem Lebenslauf Java.

2
Robert Gould

Ich werde einfach weitermachen und meine Antwort von der doppelten Frage migrieren


Der Name "Skriptsprache" bezieht sich auf eine ganz bestimmte Rolle: die Sprache, in der Sie Befehle schreiben, die an eine vorhandene Softwareanwendung gesendet werden sollen. (wie ein traditionelles Fernseh- oder Film- "Drehbuch")

Zum Beispiel waren HTML-Webseiten einmal langweilig. Sie waren immer statisch. Dann dachte Netscape eines Tages: "Hey, was ist, wenn wir den Browser kleine Befehle auf der Seite lesen und ausführen lassen?" Und so entstand Javascript.

Ein einfacher Javascript-Befehl ist der Befehl alert(), der den Browser (eine Software-App), der die Webseite liest, anweist/anweist, eine Warnung anzuzeigen.

Bezieht sich alert() nun in irgendeiner Weise auf C++ oder eine andere Codesprache, die der Browser tatsächlich verwendet , um die Warnung anzuzeigen? ? Natürlich nicht. Jemand, der "alert ()" auf eine HTML-Seite schreibt, hat kein Verständnis dafür, wie der Browser die Warnung tatsächlich anzeigt. Er schreibt nur einen Befehl, den der Browser interpretiert.

Sehen wir uns den einfachen Javascript-Code an

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

Hierbei handelt es sich um Anweisungen, die an den Browser gesendet werden, damit der Browser sie selbst interpretieren kann. Die Programmiersprache, die der Browser durchläuft, um tatsächlich eine Variable auf 4 zu setzen, und dies in eine Warnung zu setzen ... sie hat absolut nichts mit Javascript zu tun.

Wir nennen diese letzte Befehlsreihe ein "Skript" (weshalb es in <script> - Tags eingeschlossen ist). Nur durch die Definition von "Skript" im herkömmlichen Sinne: Eine Reihe von Anweisungen und Befehlen, die an die Schauspieler gesendet werden. Jeder weiß, dass zum Beispiel ein Drehbuch (ein Drehbuch) ein Drehbuch ist.

Das Drehbuch ist nicht der Schauspieler, der Kamera oder der Spezialeffekte. Das Drehbuch sagt ihnen nur, was zu tun ist.

Was ist nun genau ein Scripting Sprache?

Es gibt viele Programmiersprachen, die wie verschiedene Werkzeuge in einer Toolbox aussehen. Einige Sprachen wurden entwickelt speziell, um als Skripte verwendet zu werden.

Javasript ist ein offensichtliches Beispiel; Es gibt nur sehr wenige Anwendungen von Javascript, die nicht in den Bereich der Skripterstellung fallen.

ActionScript (die Sprache für Flash-Animationen) und seine Ableitungen sind Skriptsprachen, da sie einfach Befehle an den Flash Player/Interpreter senden. Klar, es gibt Abstraktionen wie objektorientierte Programmierung, aber alles, was dazu gehört, ist ein Mittel zum Zweck: Befehle an den Flash-Player senden.

Python und Ruby werden häufig auch als Skriptsprachen verwendet. Ich habe zum Beispiel einmal für eine Firma gearbeitet, die Ruby) verwendet hat, um Befehle zu schreiben, die an einen Browser gesendet werden Ich war keine Software im Sinne von "Gehe zu dieser Site, klicke auf diesen Link ...", um einige grundlegende automatisierte Tests durchzuführen Ich habe gerade Skripte geschrieben, die Befehle an den Computer gesendet haben, um Befehle an den Browser zu senden.

Aufgrund ihrer Natur werden Skriptsprachen selten "kompiliert", dh in Maschinencode übersetzt und direkt vom Computer gelesen.

Sogar GUI-Anwendungen, die aus Python und Ruby erstellt wurden, werden an eine in C++ oder C geschriebene API gesendet. Sie teilen der C-App mit, was zu tun ist.

Natürlich gibt es eine Reihe von Unklarheiten. Warum können Sie nicht sagen, dass Maschinensprache/C Skriptsprachen sind, da es sich um Skripts handelt, die der Computer verwendet, um eine Schnittstelle mit der Hauptplatine/Grafikkarten/Chips herzustellen?

Es gibt einige Linien, die wir zur Verdeutlichung zeichnen können:

  1. Wenn Sie eine Skriptsprache schreiben und ausführen können, ohne sie zu "kompilieren", ist dies eher eine Art Direktskript. Zum Beispiel müssen Sie mit einem Drehbuch nichts anfangen, um den Schauspielern mitzuteilen, was sie damit anfangen sollen. Es ist schon da, gebraucht, wie es ist. Aus diesem Grund werden wir kompilierte Sprachen ausschließen nicht als Skriptsprachen bezeichnen, auch wenn sie gelegentlich für Skripts verwendet werden können.

  2. Skriptsprache impliziert Befehle, die an eine komplexe Softwareanwendung gesendet werden. Das ist der ganze Grund, warum wir überhaupt Skripte schreiben. Sie müssen also nicht die Komplexität der Funktionsweise der Software kennen, um Befehle an sie zu senden. Daher sind Skriptsprachen in der Regel Sprachen, die relativ) einfache Befehle an komplexe Softwareanwendungen senden ... in diesem Fall werden Maschinensprache und Assembly-Code nicht verwendet.

2
Justin L.

Meiner Meinung nach würde ich sagen, dass dynamisch interpretierte Sprachen wie PHP, Ruby usw. immer noch "normale" Sprachen sind. Ich würde sagen, dass Beispiele für "Skriptsprachen" Dinge wie bash (oder ksh oder tcsh oder was auch immer) oder sqlplus sind. Diese Sprachen werden häufig verwendet, um vorhandene Programme auf einem System zu einer Reihe zusammenhängender und verwandter Befehle zusammenzufassen, z.

  1. kopiere A.txt nach/tmp/work /
  2. führen Sie die nächtliche Bereinigung auf dem Datenbankserver aus
  3. protokolliere die ergebnisse und sende sie an das sysdamin

Also würde ich sagen, der Unterschied (für mich jedenfalls) liegt mehr darin, wie Sie verwenden die Sprache. Sprachen wie PHP, Perl, Ruby könnte als "Skriptsprachen" verwendet werden, aber ich sehe sie normalerweise als "normale Sprachen" (außer Perl, das in beide Richtungen zu gehen scheint).

Die Definition von "Skriptsprache" ist ziemlich unklar. Ich würde es auf die folgenden Überlegungen stützen:

  1. Skriptsprachen haben normalerweise keine vom Benutzer sichtbaren Kompilierungsschritte. Normalerweise kann der Benutzer Programme nur mit einem einfachen Befehl ausführen.

  2. Programme in Skriptsprachen werden normalerweise in Quellform weitergegeben.

  3. Skriptsprachen haben normalerweise Laufzeiten, die auf einer großen Anzahl von Systemen vorhanden sind, und die Laufzeiten können auf den meisten Systemen problemlos installiert werden.

  4. Skriptsprachen sind in der Regel plattformübergreifend und nicht maschinenspezifisch.

  5. Skriptsprachen erleichtern das Aufrufen anderer Programme und die Anbindung an das Betriebssystem.

  6. Skriptsprachen können normalerweise leicht in größere Systeme eingebettet werden, die in konventionelleren Programmiersprachen geschrieben sind.

  7. Skriptsprachen sind normalerweise so konzipiert, dass sie sich leicht programmieren lassen und die Ausführungsgeschwindigkeit viel geringer ist. (Wenn Sie eine schnelle Ausführung wünschen, ist es üblich, die zeitaufwändigen Teile in etwas wie C zu codieren und die Sprache entweder in C einzubetten oder C-Bits aus der Sprache aufzurufen.)

Einige der oben aufgeführten Merkmale gelten für Implementierungen. In diesem Fall beziehe ich mich auf die allgemeineren Implementierungen. Es gab C-Interpreter mit (AFAIK) ohne offensichtlichen Kompilierungsschritt, aber das gilt nicht für die meisten C-Implementierungen. Sie könnten sicherlich ein Perl-Programm mit nativem Code kompilieren, aber so wird es normalerweise nicht verwendet. Einige andere Merkmale sind sozialer Natur. Einige der oben genannten Kriterien überschneiden sich etwas. Wie gesagt, die Definition ist unscharf.

1
David Thornley

Ich bevorzuge, dass die Leute den Begriff "Skriptsprache" nicht verwenden, da ich denke, dass dies den Aufwand verringert. Nehmen Sie eine Sprache wie Perl, die oft als "Skriptsprache" bezeichnet wird.

  • Perl ist eine Programmiersprache!
  • Perl wird wie Java und C++ kompiliert. Es wird nur viel schneller kompiliert!
  • Perl verfügt über Objekte, Namespaces und Closures.
  • Perl verfügt über IDEs sowie Debugger und Profiler.
  • Perl verfügt über Schulungen und Support sowie eine Community.
  • Perl ist nicht nur Web. Perl ist nicht nur Sysadmin. Perl ist nicht nur das Klebeband des Internets.

Warum müssen wir überhaupt zwischen einer kompilierten Sprache wie Java und einer kompilierten Sprache Ruby=) unterscheiden? Welchen Wert hat die Beschriftung?

Weitere Informationen hierzu finden Sie unter http://xoa.petdance.com/Stop_saying_script .

1
Andy Lester

Eine Skriptsprache ist eine Sprache, die ein vorhandenes Programm konfiguriert oder erweitert.
Eine Skriptsprache ist eine Programmiersprache.

1
Romain Hippeau

Ein wichtiger Unterschied ist starkes Tippen (versus schwaches Tippen ). Skriptsprachen sind häufig schwach typisiert , sodass kleine Programme schneller geschrieben werden können. Für große Programme ist dies ein Nachteil, da der Compiler/Interpreter dadurch nicht in der Lage ist, bestimmte Fehler selbständig zu finden, was es sehr schwierig macht, den Code umzugestalten.

1
Dimitri C.

Skriptsprachen sind Programmiersprachen, in denen die Programme in der Regel in lesbarer Textform an Endbenutzer ausgeliefert werden und in denen es ein Programm gibt, das anscheinend das Programm direkt ausführen kann. (Das Programm kompiliert das Skript möglicherweise intern. Dies ist hier nicht relevant, da es für den Benutzer nicht sichtbar ist.)

Skriptsprachen unterstützen in der Regel eine interaktive Sitzung, in der Benutzer einfach ihr Programm eingeben und sofort ausführen können. Dies liegt daran, dass dies eine triviale Erweiterung der grundlegenden Anforderung aus dem ersten Absatz ist. Die wichtigste zusätzliche Anforderung ist die Hinzufügung eines Mechanismus, um herauszufinden, wann eine eingegebene Anweisung vollständig ist, damit sie an die Ausführungsengine gesendet werden kann.

1
Donal Fellows

Skriptsprachen werden normalerweise in einer Skript-Engine ausgeführt, die Teil einer größeren Anwendung ist. Beispielsweise wird JavaScript in der Skript-Engine Ihres Browsers ausgeführt.

1
Martin OConnor

Für eine etwas andere Sicht auf die Frage. Eine Skriptsprache ist eine Programmiersprache, aber eine Programmiersprache muss nicht unbedingt eine Skriptsprache sein. Eine Skriptsprache wird zum Steuern oder Skripten eines Systems verwendet. Dieses System könnte ein Betriebssystem sein, in dem die Skriptsprache bash ist. Das System könnte ein Webserver mit der Skriptsprache PHP) sein. Skriptsprachen sind so konzipiert, dass sie eine bestimmte Nische ausfüllen. Sie sind domänenspezifische Sprachen. Interaktive Systeme haben Skriptsprachen interpretiert, was zu dem Gedanken geführt hat, dass Skriptsprachen werden interpretiert, dies ist jedoch eine Konsequenz des Systems und nicht der Skriptsprache selbst.

1
phreed

Eine Skriptsprache ist eine Sprache, die bei jeder Ausführung des Skripts interpretiert wird. Sie setzt einen Interpreter voraus und die meisten sind sehr gut lesbar. Um nützlich zu sein, ist eine Skriptsprache einfach zu erlernen und zu verwenden.

Jede kompilierbare Sprache kann in eine Skriptsprache umgewandelt werden und umgekehrt hängt alles von der Implementierung eines Interpreters oder eines Compilers ab. Als Beispiel verfügt C++ über einen Interpreter, sodass sie bei entsprechender Verwendung als Skriptsprache bezeichnet werden kann (im Allgemeinen nicht sehr praktisch als C++) ist eine sehr komplexe Sprache), eine der nützlichsten Skriptsprachen ist derzeit Python ...

Um Ihre Frage zu beantworten, müssen Sie einen Interpreter verwenden, um schnell und einfach skriptbasierte Programme auszuführen, um einfache Aufgaben oder Prototypanwendungen zu bewältigen. Die leistungsfähigste Verwendung von Skriptsprachen besteht darin, für jede Verwendung die Möglichkeit zu bieten, a zu erweitern kompilierte Anwendung.

1
Panic

Paraphrasierung von Robert Sebesta in Konzepte von Programmiersprachen :

Eine Skriptsprache wird verwendet, indem eine Liste von Befehlen, die als Skript bezeichnet werden, in eine auszuführende Datei eingefügt wird. Die erste dieser Sprachen mit dem Namen sh (für Shell) begann als kleine Sammlung von Befehlen, die als Aufrufe von Systemunterprogrammen interpretiert wurden, die ausgeführt wurden Hilfsprogrammfunktionen wie Dateiverwaltung und einfache Dateifilterung. Zu dieser Basis wurden Variablen, Kontrollflussstatus, Funktionen und verschiedene andere Funktionen hinzugefügt, und das Ergebnis ist eine vollständige Programmiersprache.

Und dann haben Sie Beispiele wie AWK , Tcl/Tk, Perl (was besagt, dass anfangs eine Kombination zwischen sh und [~ # ~] awk [~ # ~] , aber es wurde so mächtig, dass er es für eine "seltsame, aber vollwertige Programmiersprache" hält. Andere Beispiele sind CGI und JavaScript.

0
Eliseo Ocampos

Ich habe immer Skriptsprachen als Mittel zur Kommunikation mit einer Anwendung oder einem Programm angesehen. Im Gegensatz dazu erstellt eine kompilierte Sprache das Programm selbst.

Denken Sie jetzt daran, dass eine Skriptsprache normalerweise das Programm ergänzt oder ändert, das ursprünglich mit einer kompilierten Sprache erstellt wurde. Es kann also durchaus ein Teil des größeren Bildes sein, aber die anfänglichen Binärdateien werden zuerst mit einer kompilierten Sprache erstellt.

So konnte ich eine Skriptsprache erstellen, mit der Benutzer verschiedene Aktionen ausführen oder mein Programm anpassen können. Mein Programm würde den Skriptcode interpretieren und im Gegenzug eine Funktion aufrufen. Dies ist nur ein einfaches Beispiel. Es gibt Ihnen nur eine Möglichkeit, Routinen innerhalb des Programms dynamisch aufzurufen.

Mein Programm müsste den geskripteten Code analysieren (Sie könnten diese als Befehle bezeichnen) und jede beabsichtigte Aktion in Echtzeit ausführen.

Ich sehe, dass diese Frage bereits mehrmals beantwortet wurde, aber ich dachte, ich würde meine Sichtweise in die Mischung einbauen. Zugegeben, einige Leute mögen mit dieser Antwort nicht einverstanden sein, aber diese Denkweise hat mir immer geholfen.

0
Daniel Eagle

Ein Skript ist ein relativ kleines Programm. Ein System ist ein relativ großes Programm oder ein Sammlung relativ großer Programme.

Einige Programmiersprachen verfügen über Funktionen, die der Sprachdesigner und die Programmierergemeinschaft beim Schreiben relativ kleiner Programme für nützlich halten. Diese Programmiersprachen sind als Skriptsprachen bekannt, z. PHP.

In ähnlicher Weise werden andere Programmiersprachen mit Funktionen entworfen, die der Sprachdesigner und die Programmierergemeinschaft beim Schreiben relativ großer Programme für nützlich halten. Diese Programmiersprachen sind als Systemsprachen bekannt, z. Java.

Jetzt können kleine und große Programme in jeder Sprache geschrieben werden. Ein kleines Java ist ein Skript. Beispielsweise ist ein Java "Hello World" -Programm ein Skript, kein System. Ein großes Programm oder eine Sammlung von Programmen, geschrieben in PHP ist ein System. Beispielsweise ist Facebook, geschrieben in PHP, ein System, kein Skript.

Es ist fraglich, ein einziges Sprachmerkmal als "Lackmus-Test" zu betrachten, um zu entscheiden, ob die Sprache am besten für die Skripterstellung oder die Systemprogrammierung geeignet ist. Beispielsweise können Skripte zu Bytecode oder Maschinencode kompiliert werden , oder sie können durch direkte abstrakte Syntaxbauminterpretation (AST) ausgeführt werden.

Also, eine Sprache ist eine Skriptsprache, wenn sie normalerweise zum Schreiben von Skripten verwendet wird. Eine Skriptsprache könnte zum Schreiben von Systemen verwendet werden, aber solche Anwendungen werden wahrscheinlich als zweifelhaft angesehen.

0
Greg Mattes

Der bekannteste Aufsatz, der von einer mir bekannten notenwürdigen Quelle zu diesem Thema verfasst wurde, heißt Ousterhouts Dichotomie . Es wird sehr kritisiert, weil es ziemlich willkürlich ist und oft scherzhaft als Ousterhouts falsche Zweiteilung bezeichnet wird. Dies wird in einer Diskussion über das Thema gesagt, das es verdient, zitiert zu werden.

Ich persönlich stimme zu, dass dies eine falsche Dichotomie ist, und ich würde niemandem vertrauen, der diese Frage beantwortet, die feste Eigenschaften hinsichtlich der Definition einer Skriptsprache vorschlägt. Kommentare wie "Eine Skriptsprache muss dynamisch eingegeben werden" sind falsch und Kommentare wie "Skriptsprachen müssen interpretiert werden" ergeben keinen Sinn, da Kompilierung und Interpretation entgegen der landläufigen Meinung überhaupt keine Eigenschaft der Sprache sind.

Es gibt viele Eigenschaften, die die Leute oben als grob passende Skriptsprachen erwähnt haben. Zum Glück erklären die meisten, dass dieser Begriff keine strenge Definition hat. Ich werde meine Vorstellungen von dem, was sie hier sind, nicht duplizieren. Meiner Erfahrung nach betrachten Leute eine Sprache als Skriptsprache, wenn sie in ihnen leicht einige Schnell-Wegwerfprogramme schreiben können, ohne viel Boiler Plate zu schreiben. Ich antworte hauptsächlich, um Ihnen das Zitat von Ousterhout zu geben, das ich hier nicht sehe.

0
mmachenry

Wenn nicht /würde nicht laufen auf der CPU, es ist ein Skript für mich. Wenn ein Interpreter auf der CPU unterhalb des Programms ausgeführt werden muss, handelt es sich um ein Skript und eine Skriptsprache.

Kein Grund, es komplizierter zu machen?

Natürlich ist in den meisten Fällen (99%) klar, ob eine Sprache eine Skriptsprache ist. Bedenken Sie jedoch, dass ein VM zum Beispiel den x86-Befehlssatz emulieren kann. Würde dies den x86-Bytecode nicht zu einer Skriptsprache machen, wenn er auf einer VM ausgeführt wird? würde Perl-Code in eine native ausführbare Datei verwandeln? In diesem Fall würde ich nicht mehr wissen, wie ich die Sprache selbst nennen soll. Es wäre die Ausgabe, die von Bedeutung wäre, nicht die Sprache.

Andererseits bin ich mir nicht bewusst, dass so etwas getan wurde, und deshalb fühle ich mich im Moment immer noch wohl, wenn ich interpretierte Sprachen als Skriptsprachen bezeichne.

0
anon6439

Eine Skriptsprache ist eine Programmiersprache, mit der die Funktionen eines vorhandenen Systems bearbeitet, angepasst und automatisiert werden. In solchen Systemen ist nützliche Funktionalität bereits über eine Benutzeroberfläche verfügbar, und die Skriptsprache ist ein Mechanismus, um diese Funktionalität der Programmsteuerung zur Verfügung zu stellen. Auf diese Weise soll das vorhandene System eine Host-Umgebung mit Objekten und Einrichtungen bereitstellen, die die Fähigkeiten der Skriptsprache vervollständigt. Eine Skriptsprache ist sowohl für professionelle als auch für nicht-professionelle Programmierer gedacht.

referenz

http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

0

Kurz gesagt, Skriptsprachen haben die folgenden Eigenschaften:

  1. Dolmetscher basiert.
  2. Einfache Syntax. Der Zugriff auf Verzeichnisdateien ist in python im Vergleich zu Java sehr einfach.
  3. Wird im Allgemeinen verwendet, um weniger Codezeilen zu schreiben.
  4. Praktisch zum Schreiben von Automatisierungscodes.
  5. Sehr gute Sprachen.

Beispiel: Javascript, Python, VBA.

0
Shobhit_Geek

Ich würde sagen, dass Skriptsprache diejenige ist, die Entitäten stark manipuliert, die sie selbst nicht definiert. Zum Beispiel manipuliert JavaScript DOM-Objekte, die vom Browser bereitgestellt werden, PHP betreibt eine enorme Bibliothek von C-basierten Funktionen usw. Natürlich keine genaue Definition, eher eine Art zu überlegen, ob dies der Fall ist.

0
Michael Pliskin

nur um es kurz zu machen

Skriptsprachen werden in einem anderen Programm ausgeführt. Skriptsprachen werden nicht kompiliert. Skriptsprachen sind einfach zu verwenden und leicht zu schreiben. aber …

Sehr beliebte Programmiersprachen (Java, C #) werden in einem übergeordneten Programm ausgeführt - wie Skriptsprachen. Skriptsprachen werden heutzutage verwendet, um komplexe Software zu erstellen. Computer sind heutzutage so schnell und Skriptsprachen sind so effizient, dass es für die meisten Geschäftsvorgänge keinen praktischen Geschwindigkeitsvorteil gibt (wie früher), wenn eine kompilierte Programmiersprache verwendet wird.

0
Srikanth Naidu
0
none

Ihre Kriterien klingen ungefähr richtig, sind aber immer etwas unscharf. Zum Beispiel wird Java) sowohl kompiliert (in Bytecode) als auch interpretiert (von der JVM), wird aber normalerweise nicht als Skriptsprache eingestuft.

Dies kann daran liegen, dass Java ist statisch typisiert. JavaScript, Ruby, Python, Perl usw. hingegen nicht (alle werden oft als Skriptsprachen bezeichnet).

0
Einar

Wie jemand anderes bemerkt hat, gibt es keine kompilierte oder interpretierte Sprache, da jede Sprache entweder kompiliert oder interpretiert werden kann. Sprachen, die traditionell eher interpretiert als kompiliert wurden (Python, Perl, Ruby, PHP, JavaScript, Lua), werden auch als Skriptsprachen bezeichnet. Es ist also relativ vernünftig zu sagen, dass eine Skriptsprache eher interpretiert als kompiliert wird. Die anderen Merkmale, die Skriptsprachen gemeinsam haben, hängen mit der Tatsache zusammen, dass sie interpretiert werden.

Skriptsprachen sind in Wirklichkeit eine Untergruppe von Programmiersprachen. Ich glaube nicht, dass die meisten Leute behaupten würden, dass eine der zuvor erwähnten Sprachen nicht auch Programmiersprachen sind.

0
kerkeslager