Kann jemand bitte den Unterschied zwischen Skriptsprache und Programmiersprache erklären?
Sie können auch einige Beispiele für jedes angeben. Ich habe viel gegoogelt, aber ich finde immer die besten Antworten von Stack Overflow.
quelle
Kann jemand bitte den Unterschied zwischen Skriptsprache und Programmiersprache erklären?
Sie können auch einige Beispiele für jedes angeben. Ich habe viel gegoogelt, aber ich finde immer die besten Antworten von Stack Overflow.
Skriptsprachen sind Programmiersprachen, für die kein expliziter Kompilierungsschritt erforderlich ist.
Im Normalfall müssen Sie beispielsweise ein C-Programm kompilieren, bevor Sie es ausführen können. Im Normalfall müssen Sie jedoch kein JavaScript-Programm kompilieren, bevor Sie es ausführen. Daher wird JavaScript manchmal als "Skriptsprache" bezeichnet.
Diese Zeile wird immer verschwommener, da die Kompilierung mit moderner Hardware und modernen Kompilierungstechniken so schnell erfolgen kann. Zum Beispiel kompiliert V8, die JavaScript-Engine in Google Chrome, die auch außerhalb des Browsers häufig verwendet wird, den JavaScript-Code im laufenden Betrieb in Maschinencode, anstatt ihn zu interpretieren. (Tatsächlich ist V8 ein optimierender Zweiphasen-Compiler.)
Beachten Sie auch, dass es mehr um die Umgebung als um die Sprache gehen kann, ob eine Sprache eine "Skriptsprache" ist oder nicht. Es gibt keinen Grund, warum Sie keinen C-Interpreter schreiben und als Skriptsprache verwenden können (und die Leute haben). Es gibt auch keinen Grund, warum Sie JavaScript nicht zu Maschinencode kompilieren und in einer ausführbaren Datei speichern können (und die Leute haben). Die Sprache Ruby ist ein gutes Beispiel dafür: Die ursprüngliche Implementierung wurde vollständig interpretiert (eine "Skriptsprache"), aber es gibt jetzt mehrere Compiler dafür.
Einige Beispiele für "Skriptsprachen" (z. B. Sprachen, die traditionell ohne expliziten Kompilierungsschritt verwendet werden):
Und ein kleiner Teil von denen, die traditionell mit einem expliziten Kompilierungsschritt verwendet werden:
... und dann haben Sie Dinge wie Python, die in beiden Lagern sitzen: Python wird häufig ohne Kompilierungsschritt verwendet, aber die Hauptimplementierung (CPython) erledigt dies, indem sie im laufenden Betrieb zu Bytecode kompiliert und dann den Bytecode in a ausführt VM, und es kann diesen Bytecode zur erneuten Kompilierung in Dateien ( .pyc
, .pyo
) schreiben .
Das sind nur sehr wenige. Wenn Sie etwas recherchieren, können Sie viel mehr finden.
Um den Unterschied zwischen einer Skriptsprache und einer Programmiersprache zu verstehen, muss man verstehen, warum Skriptsprachen geboren wurden.
Anfangs gab es Programmiersprachen, die geschrieben wurden, um Programme wie Excel, Word, Browser, Spiele usw. zu erstellen. Diese Programme wurden mit Sprachen wie c und Java erstellt. Im Laufe der Zeit brauchten diese Programme eine Möglichkeit für Benutzer, neue Funktionen zu erstellen. Daher mussten sie eine Schnittstelle zu ihrem Bytecode bereitstellen, und daher wurden Skriptsprachen geboren.
Eine Skriptsprache wird normalerweise nicht kompiliert und kann ausgeführt werden, sobald Sie etwas Sinnvolles schreiben. Daher kann Excel mit C ++ erstellt werden, stellt jedoch eine Skriptsprache namens VBA zur Verfügung, mit der Benutzer Funktionen definieren können. In ähnlicher Weise können Browser mit C ++ / Java erstellt werden, sie stellen jedoch eine Skriptsprache namens Javascript bereit (die in keiner Weise mit Java zusammenhängt). Spiele werden normalerweise mit C ++ erstellt, bieten jedoch eine Sprache namens Lua, in der Benutzer benutzerdefinierte Funktionen definieren können.
Eine Skriptsprache befindet sich normalerweise hinter einer Programmiersprache. Skriptsprachen haben normalerweise weniger Zugriff auf die nativen Fähigkeiten des Computers, da sie auf einer Teilmenge der ursprünglichen Programmiersprache ausgeführt werden. Ein Beispiel hierfür ist, dass Javascript nicht auf Ihr Dateisystem zugreifen kann. Skriptsprachen sind normalerweise langsamer als Programmiersprachen.
Obwohl Skriptsprachen möglicherweise weniger Zugriff haben und langsamer sind, können sie sehr leistungsfähige Tools sein. Ein Faktor für den Erfolg einer Skriptsprache ist die einfache Aktualisierung. Erinnern Sie sich an die Tage der Java-Applets im Web? Dies ist ein Beispiel für das Ausführen einer Programmiersprache (Java) im Vergleich zum Ausführen einer Skriptsprache (Javascript). Zu dieser Zeit waren Computer nicht so leistungsfähig und Javascript war nicht so ausgereift, sodass Java-Applets die Szenen dominierten. Java-Applets waren jedoch ärgerlich. Der Benutzer musste die Sprache laden und kompilieren. Java-Applets sind fast ausgestorben und Javascript dominiert die Szene. Das Laden von Javascript ist extrem schnell, da die meisten Browserkomponenten bereits installiert wurden.
Schließlich werden Skriptsprachen auch als Programmiersprachen betrachtet (obwohl einige Leute dies ablehnen) - der Begriff, den wir hier verwenden sollten, ist Skriptsprachen im Vergleich zu kompilierten Sprachen.
quelle
Alle Skriptsprachen sind Programmiersprachen.
Sprachen werden nicht als Skript klassifiziert oder nicht - dies hängt vollständig von der Ausführungsumgebung ab.
Wenn die Umgebung interpretiert wird, wird dies üblicherweise als Skriptumgebung bezeichnet.
quelle
Die Unterschiede werden immer weniger wichtig. Traditionell erweitern Skriptsprachen vorhandene Programme ... Ich denke, das ist die Hauptdefinition von "Skripts", die sich auf das Schreiben einer Reihe von Anweisungen bezieht, die eine vorhandene Entität ausführen soll. Wo jedoch Skriptsprachen mit proprietärer und umgangssprachlicher Syntax begannen, verdanken die meisten der heute vorherrschenden Sprachen eine Beziehung zu C.
Ich denke, die Unterscheidung zwischen "interpretiert und kompiliert" ist eher ein Symptom für die Erweiterung eines vorhandenen Programms (mit einem eingebauten Interpreter) als ein wesentlicher Unterschied. Programmierer und Laien sind mehr besorgt darüber, "was macht der Programmierer?" Die Tatsache, dass ein Programm interpretiert und ein anderes kompiliert wird, bedeutet sehr wenig, um den Aktivitätsunterschied des Erstellers zu bestimmen. Sie beurteilen einen Dramatiker nicht danach, ob seine Stücke häufiger vorgelesen oder auf der Bühne aufgeführt werden, oder?
quelle
Programmiersprache: Wird in Maschinencode kompiliert und auf der Hardware des zugrunde liegenden Betriebssystems ausgeführt.
Skriptsprache: Ist eine unstrukturierte Teilmenge der Programmiersprache. Es wird allgemein interpretiert. Es "schreibt" im Grunde andere Dinge, um Dinge zu tun. Der Hauptfokus liegt nicht in erster Linie auf dem Erstellen eigener Apps, sondern darauf, dass eine vorhandene App so funktioniert, wie Sie es möchten, z. B. JavaScript für Browser, TCL usw.
*** Es gibt jedoch Situationen, in denen eine Programmiersprache in einen Interpreter konvertiert wird und umgekehrt wie bei einem C-Interpreter, in dem Sie ein C-Skript erstellen können. Skripte werden im Allgemeinen geschrieben, um ein Anwendungsverhalten zu steuern, bei dem als Programmiersprache Anwendungen erstellt werden. Beachten Sie jedoch, dass die Abgrenzung als Beispiel für Python von Tag zu Tag verschwimmt. Dies hängt davon ab, wie die Sprache verwendet wird.
quelle
Skriptsprachen sind eine Teilmenge der Programmiersprachen.
quelle
Ich denke, dass das, was Sie als "Unterschied" bezeichnen, tatsächlich eine Folge des wirklichen Unterschieds ist.
Der tatsächliche Unterschied ist das Ziel des geschriebenen Codes. Wer wird diesen Code ausführen?
Eine Skriptsprache wird verwendet, um Code zu schreiben, der auf ein Softwaresystem abzielt. Es wird den Betrieb auf diesem Softwaresystem automatisieren. Das Skript wird eine Folge von Anweisungen an das Zielsoftwaresystem sein.
Eine Programmiersprache zielt auf das Computersystem ab, bei dem es sich um eine reale oder virtuelle Maschine handeln kann. Die Anweisungen werden von der Maschine ausgeführt.
Natürlich versteht eine echte Maschine nur Binärcode, daher müssen Sie den Code einer Programmiersprache kompilieren. Dies ist jedoch eine Folge der Ausrichtung auf eine Maschine anstelle eines Programms.
Andererseits kann das Zielsoftwaresystem eines Skripts den Code kompilieren oder interpretieren. Ist bis zum Softwaresystem.
Wenn wir sagen, dass der wirkliche Unterschied darin besteht, ob es kompiliert wird oder nicht, dann haben wir ein Problem, denn wenn Javascript in V8 ausgeführt wird, wird es kompiliert und wenn es in Rhino ausgeführt wird, nicht.
Es wird verwirrender, da sich die Skriptsprachen zu sehr leistungsfähigen Sprachen entwickelt haben. Sie sind also nicht darauf beschränkt, kleine Skripte zu erstellen, um Vorgänge auf einem anderen Softwaresystem zu automatisieren. Sie können mit ihnen beliebige umfangreiche Anwendungen erstellen.
Python-Code zielt auf einen Interpreter ab, sodass wir sagen können, dass er Operationen auf diesem Interpreter "skriptiert". Wenn Sie jedoch Python-Code schreiben, sehen Sie ihn nicht als Skript für einen Interpreter, sondern als Erstellung einer Anwendung. Der Interpreter ist nur da, um unter anderem auf einer höheren Ebene zu codieren. Für mich ist Python also eher eine Programmiersprache als eine Skriptsprache.
quelle
Als die Welt noch jung war und Sie in der PC-Welt zwischen .exe und .bat gewählt haben, war die Abgrenzung einfach. Unix-Systeme hatten immer Shell-Skripte (/ bin / sh, / bin / csh, / bin / ksh usw.) und kompilierte Sprachen (C / C ++ / Fortran).
Um Rollen und Verantwortlichkeiten zu unterscheiden, wurden die kompilierten Sprachen (oft als Sprachen der 3. Generation bezeichnet) als Programmiersprachen und Skriptsprachen als diejenigen angesehen, die einen Interpreter aufriefen (oft als Sprachen der 4. Generation bezeichnet). Skriptsprachen wurden häufig als "Klebstoff" verwendet, um eine Verbindung zwischen mehreren Befehlen / kompilierten Programmen herzustellen, sodass sich der Benutzer nicht um eine Reihe von Schritten kümmern musste, um seine Aufgabe auszuführen. Sie entwickelten eine einzelne Datei, in der die Schritte beschrieben wurden Sie wollten es schaffen, und dies wurde zu einem „Drehbuch“, dem jeder folgen konnte.
Verschiedene Personen / Gruppen haben neue Dolmetscher geschrieben, um eine bestimmte Problemdomäne zu lösen. awk ist eine der bekannteren und wurde hauptsächlich zum Mustervergleich und zum Anwenden einer Reihe von Datentransformationen auf die Eingabe verwendet. Es funktionierte gut, hatte aber eine begrenzte Problemdomäne. Die Erweiterung dieser Domain war so gut wie unmöglich, da der Quellcode nicht verfügbar war. Perl (Larry Wall, Hauptautor / Architekt) Tool-Scripting auf die nächste Ebene - und entwickelte einen Interpreter, der es dem Benutzer nicht nur ermöglichte, Systembefehle auszuführen, Eingabe- und Ausgabedaten zu bearbeiten, typlose Variablen zu unterstützen, sondern auch auf APIs auf Unix-Systemebene zuzugreifen als Funktionen aus den Skripten selbst. Es war wahrscheinlich eine der ersten weit verbreiteten Skriptsprachen auf hoher Ebene.
Ihre Frage betraf speziell Python. Da der Python-Interpreter gegen eine Textdatei ausgeführt wird, die den Python-Code enthält, und der Python-Code überall dort ausgeführt werden kann, wo es einen Python-Interpreter gibt, würde ich sagen, dass es sich um eine Skriptsprache handelt (in der gleichen Weise wie Perl). Sie müssen die Benutzer-Python-Befehlsdatei nicht für jede andere OS / CPU-Architektur neu kompilieren (wie bei C / C ++ / Fortran), wodurch sie wesentlich portabler und benutzerfreundlicher wird.
Die Antwort geht an Jerrold (Jerry) Heyman. Ursprünglicher Thread: https://www.researchgate.net/post/Is_Python_a_Programming_language_or_Scripting_Language
quelle
Ich bin mit der Tatsache nicht einverstanden, dass Sprachen, die Dolmetscher verwenden, Skriptsprachen sind und die Sprachen, die kompiliert werden, Programmiersprachen sind. Wir können einen Interpreter oder Compiler für jede Sprache entwickeln. Die interpretierte Umgebung passt besser zu Web-Skripten und macht es einfacher, deshalb haben wir sie.
Ich habe das Gefühl, dass es keinen Unterschied zwischen Skriptsprache und Programmiersprache gibt. Es geht darum, die Arbeit zu erledigen. Wenn es um webbezogene Aufgaben geht, nennen wir sie Web-Skripte, die kleine Aufgaben berücksichtigen. Auf diese Weise können wir die systembezogenen Aufgaben auch als Skripte auf System- oder Betriebssystemebene und die Programmiersprache, mit der wir diese Aufgaben ausführen, als System-Skriptsprachen bezeichnen.
Es ist auch nicht so, dass man keinen Code auf Systemebene in Python und Web-Skripte in C-Sprache schreiben kann (definitiv kann man das tun, wenn wir die erforderliche Plattform und Umgebung einrichten können). Es ist jedoch nur zu viel Aufwand erforderlich, was sich auf die Zeitbeschränkung für die schnelle Entwicklung auswirken kann, und die geringe Latenz wird uns bei Web-Skripten nicht viel nützen. Das Gegenteil ist jedoch nicht der Fall, wenn wir Aufgaben auf Systemebene in Python ausführen.
Fazit: Die Auswahl der Sprache hängt von der Art der auszuführenden Aufgabe ab, und die Unterscheidung einer Sprache als Skriptsprache ist ein Mythos.
quelle
Skriptsprachen
Skriptsprachen werden in einem anderen Programm interpretiert. JavaScript ist in einen Browser eingebettet und wird von diesem Browser interpretiert.
Beispiele für Skriptsprachen
Vorteile von Skriptsprachen:
Einfach - Skriptsprachen sind einfacher zu schreiben als Programmiersprachen.
Weniger Codezeilen (LOC)
Programmierte Sprachen
Programmiersprachen wie Java werden kompiliert und nicht auf die gleiche Weise von einer anderen Anwendung interpretiert.
Beispiele für Programmiersprachen
Mehr Details
quelle
In Skriptsprachen wie (JavaScript und alte PHP-Versionen) verwenden wir vorhandene grundlegende Funktionen und Methoden zur Ausführung unserer Arbeit. Nehmen
JavaScript
wir ein Beispiel, das wir verwenden könnenajax
oderweb-sockets
nur, wenn sie vom Browser unterstützt werden oder Methoden vorhanden sind oder sie im Browser vorhanden sind. In Sprachen wie C oder C ++, Java, können wir diese Funktion von Grund auf neu schreiben, auch wenn keine Bibliothek für diese Funktion verfügbar ist, dies jedoch nicht in JavaScript.Können Sie Web-Sockets in Internet Explorer 8 oder früher mit Hilfe von JavaScript unterstützen ? Sie können jedoch ein Plugin in C oder C ++ oder Java schreiben, das Internet Explorer 8 möglicherweise eine Funktion von Web-Sockets hinzufügt.
Grundsätzlich schreiben wir in Skriptsprachen einen Code in einer Sequenz, die vorhandene Methoden in einer Sequenz ausführt, um unseren Job abzuschließen. Die Eingabe von Zahlen und Formeln in einen digitalen Taschenrechner für eine Operation ist auch ein Beispiel für die Skriptsprache. Wir sollten beachten, dass die Compiler- / Laufzeitumgebung jeder Skriptsprache immer in einer Programmiersprache geschrieben ist, in der wir weitere Funktionen hinzufügen können und Methoden und kann neue Bibliotheken schreiben.
PHP Dies ist eine Sprache, die etwas s / w programmiert und geschrieben wird. Wir können neue Methoden hinzufügen, indem wir kompilierte Erweiterungen hinzufügen, die in einer anderen Hochsprache geschrieben sind. Wir können keine Funktionen auf hoher Ebene für das Netzwerk oder das Erstellen von Bildverarbeitungsbibliotheken direkt in PHP hinzufügen.
PS Es tut mir wirklich leid, dass ich meine Antwort nur auf PHP-JavaScript konzentriert habe, aber ich verwende diese beiden, weil ich in diesen beiden eine beträchtliche Erfahrung habe.
quelle
Abgesehen von dem Unterschied, dass die Skriptsprache interpretiert und die Programmiersprache kompiliert wird, gibt es einen weiteren Unterschied wie den folgenden, den ich vermutlich übersehen habe.
Eine Skriptsprache ist eine Programmiersprache, mit der die Funktionen eines vorhandenen Systems bearbeitet, angepasst und automatisiert werden. In solchen Systemen sind nützliche Funktionen bereits über eine Benutzeroberfläche verfügbar, und die Skriptsprache ist ein Mechanismus, um diese Funktionen der Programmsteuerung auszusetzen.
Während im Allgemeinen eine Programmiersprache verwendet wird, um das System von Grund auf neu zu codieren.
src ECMA
quelle
Wenn wir logisch Programmiersprache und Skriptsprache sehen, ist dies zu 99,09% gleich. Da wir dasselbe Konzept wie Schleife, Steuerungsbedingung, Variable und alle verwenden, können wir sagen, dass beide gleich sind, aber es gibt nur einen Unterschied zwischen ihnen, der in C / C ++ und einer anderen Programmiersprache vorliegt. Wir kompilieren den Code vor der Ausführung. Aber in PHP, JavaScript und anderen Skriptsprachen müssen wir nicht kompilieren, sondern direkt im Browser ausführen.
Vielen Dank, Nitish K. Jha
quelle
Skriptsprachen sind Programmiersprachen, die als Skriptsprachen betrachtet werden. Es ist eine künstliche Kategorie ohne klare Grenze, in der jede vorgeschlagene Regel eine Ausnahme hat.
Die klassischen Regeln, nach denen eine Sprache eine Skriptsprache ist, charakterisieren und definieren nicht. Wenn eine Sprache eine Reihe von Regeln erfüllt, besteht eine gute Chance, dass sie als Skriptsprache betrachtet wird. Wenn nicht, besteht eine gute Chance, dass dies nicht der Fall ist. Die Regeln beinhalten normalerweise:
Ich würde hinzufügen:
Das heißt, es könnte eine interpretierte Sprache sein.
Wenn eine Programmiersprache ein signifikantes Verhalten zur Kompilierungszeit aufweist, bei dem sie den Code analysiert und Fehler meldet, ohne das Programm auszuführen, wie z. B. Typfehler von C, Java oder C #, wird sie höchstwahrscheinlich nicht als Skriptsprache betrachtet.
Traditionell wurden viele Skriptsprachen direkt aus dem Quellcode interpretiert, aber die populäreren von ihnen haben leistungsfähigere Implementierungen erhalten, die den Code vorkompilieren, wie z. B. Pythons
.pyc
Dateien, oder JavaScript-Engines optimiert, die vor der Ausführung zu nativem Code kompiliert werden.Wenn die Sprache von einem Interpreter implementiert werden könnte , der nur den Quellcode betrachtet, während er ausgeführt wird, wird sie wahrscheinlich als Skriptsprache betrachtet. Ob es tatsächlich auf diese Weise implementiert wird, ist nicht wichtig, aber wenn es möglich ist, kann es auch keine umfassende Fehlerprüfung des Codes während der Kompilierung erfordern.
Wenn die Sprache eine nützliche statische Semantik bietet, mit deren Hilfe Fehler (außer Syntaxfehlern) erkannt werden können, ohne dass das Programm ausgeführt werden muss, handelt es sich wahrscheinlich nicht um eine Skriptsprache.
Es gibt immer Ausnahmen, die normalerweise mehr auf der Tradition einer Sprache beruhen als auf einer tatsächlichen Regel. BASIC wird normalerweise nicht als "Skriptsprache" angesehen, obwohl es so ziemlich alle Kriterien erfüllt, die jemals jemand verwendet hat, um eine zu sein. Aus diesem Grund musste Visual Basic Script das "Skript" zum Namen hinzufügen, um sich von Visual Basic zu unterscheiden, einer "echten" Programmiersprache für größere Programme.
BASIC ist auch eine alte Programmiersprache wie COBOL und Fortran, bevor die Leute statische Analysen von einer Sprache erwarteten und im Grunde bevor "Skriptsprachen" überhaupt eine Sache waren.
quelle