385 Stimmen

Skriptsprache vs Programmiersprache

Kann mir jemand den Unterschied zwischen einer Skriptsprache und einer Programmiersprache erklären, bitte?
Können Sie auch einige Beispiele für jede nennen? Ich habe viel gegoogelt, aber die besten Antworten finde ich immer auf Stack Overflow.

521voto

T.J. Crowder Punkte 948310

Skriptsprachen sind Programmiersprachen, die keinen expliziten Kompilationsschritt erfordern.

Zum Beispiel müssen Sie in der Regel ein C-Programm kompilieren, bevor Sie es ausführen können. In der Regel müssen Sie ein JavaScript-Programm jedoch nicht kompilieren, bevor Sie es ausführen. Deshalb wird JavaScript manchmal als "Skript"-Sprache bezeichnet.

Diese Linie wird immer verschwommener, da die Kompilation mit moderner Hardware und modernen Kompilationstechniken so schnell sein kann. Zum Beispiel kompiliert der V8, der JavaScript-Motor in Google Chrome und auch außerhalb des Browsers häufig verwendet wird, den JavaScript-Code tatsächlich direkt in Maschinencode, anstatt ihn zu interpretieren. (Tatsächlich handelt es sich bei V8 um einen optimierenden Zweiphasen-Compiler.)

Beachten Sie auch, dass es mehr um die Umgebung als um die Sprache geht, ob eine Sprache eine "Skript"-Sprache ist oder nicht. Es spricht nichts dagegen, einen C-Interpreter zu schreiben und ihn als Skriptsprache zu verwenden (und das haben Leute getan). Es gibt auch keinen Grund, warum Sie JavaScript nicht in Maschinencode kompilieren und in einer ausführbaren Datei speichern können (und das haben Leute gemacht). Die Sprache Ruby ist ein gutes Beispiel dafür: Die Originalimplementierung wurde vollständig interpretiert (eine "Skript"-Sprache), aber es gibt jetzt mehrere Compiler dafür.

Einige Beispiele für "Skript"-Sprachen (z. B. Sprachen, die traditionell ohne expliziten Kompilationsschritt verwendet werden):

  • Lua
  • JavaScript
  • VBScript und VBA
  • Perl

Und eine kleine Auswahl solcher, die traditionell mit einem expliziten Kompilationsschritt verwendet werden:

  • C
  • C++
  • D
  • Java (aber beachten Sie, dass Java in Bytecode kompiliert wird, der dann zur Laufzeit interpretiert und/oder neu kompiliert wird)
  • Pascal

...und dann gibt es Dinge wie Python, die in beiden Lagern sitzen: Python wird weitgehend ohne Kompilierungsschritt verwendet, aber die Hauptimplementierung (CPython) tut dies, indem sie den Code in Bytecode direkt auf die VM ausführt und ausführt, und es kann diesen Bytecode in Dateien schreiben (.pyc, .pyo) zur Verwendung ohne erneute Kompilierung.

Das sind nur ganz wenige, wenn Sie etwas recherchieren, können Sie viele weitere finden.

113voto

yangli-io Punkte 15961

Um den Unterschied zwischen einer Skriptsprache und einer Programmiersprache zu verstehen, muss man verstehen, warum Skriptsprachen entstanden sind.

Ursprünglich 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, also mussten sie eine Schnittstelle zu ihrem Bytecode bereitstellen und so entstanden Skriptsprachen.

Eine Skriptsprache wird normalerweise nicht kompiliert, so dass sie sofort ausgeführt werden kann, sobald Sie etwas Sinnvolles schreiben. Daher kann Excel beispielsweise mit C++ erstellt sein, bietet aber eine Skriptsprache namens VBA, mit der Benutzer Funktionen definieren können. Ebenso können Browser mit C++/Java erstellt sein, bieten jedoch eine Skriptsprache namens JavaScript (die in keiner Weise mit Java verwandt ist). Spiele werden in der Regel mit C++ erstellt, jedoch wird eine Sprache namens Lua bereitgestellt, mit der Benutzer benutzerdefinierte Funktionen definieren können.

Eine Skriptsprache wird normalerweise von einer Programmiersprache unterstützt. Skriptsprachen haben normalerweise weniger Zugriff auf die nativen Fähigkeiten des Computers, da sie auf einem Teil 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 weniger Zugriff haben und langsamer sind, können sie sehr leistungsstarke Werkzeuge sein. Ein Faktor, der zum Erfolg einer Skriptsprache beiträgt, ist die einfache Aktualisierung. Erinnern Sie sich an die Zeiten von Java-Applets im Web - dies ist ein Beispiel für die Ausführung einer Programmiersprache (Java) gegenüber einer Skriptsprache (JavaScript). Zu dieser Zeit waren Computer nicht so leistungsstark und JavaScript war noch nicht so ausgereift, daher dominierten Java-Applets die Szene. Aber Java-Applets waren lästig, da sie vom Benutzer geladen und kompiliert werden mussten. Heute sind Java-Applets fast ausgestorben und JavaScript dominiert die Szene. JavaScript lädt extrem schnell, da die meisten Browserkomponenten bereits installiert sind.

Zu guter Letzt werden Skriptsprachen auch als Programmiersprachen betrachtet (obwohl einige Menschen dies ablehnen) - der Begriff, den wir hier verwenden sollten, lautet Skriptsprachen vs. kompilierte Sprachen.

68voto

Oded Punkte 475566

Alle Skriptsprachen sind Programmiersprachen.

Sprachen werden nicht als Skript oder nicht klassifiziert - es hängt vollständig von der Ausführungsumgebung ab.

Wenn die Umgebung interpretiert wird, wird dies häufig als Skriptumgebung bezeichnet.

20voto

Eric Barker Punkte 260

Die Unterschiede werden immer weniger und weniger wichtig. Traditionell erweitern Skriptsprachen bestehende Programme... Ich denke, dass die Hauptdefinition von "Skripting" darin besteht, eine Reihe von Anweisungen für eine vorhandene Entität zu schreiben, um sie auszuführen. Allerdings begannen Skriptsprachen mit proprietärer und umgangssprachlicher Syntax, die meisten der verbreiteten heutzutage haben jedoch eine Beziehung zu C.

Ich denke, die Unterscheidung zwischen "interpretiert vs. kompiliert" ist wirklich ein Symptom der Erweiterung eines bestehenden Programms (mit einem integrierten Interpreter) und nicht ein inhärenter Unterschied. Was Programmierer und Laien mehr interessiert, ist "was macht der Programmierer?" Die Tatsache, dass ein Programm interpretiert wird und ein anderes kompiliert wird, sagt sehr wenig darüber aus, was der Schöpfer tut. Beurteilen Sie einen Dramatiker nicht danach, ob seine Stücke häufiger laut gelesen oder auf der Bühne aufgeführt werden, oder?

12voto

saikumarm Punkte 1553

Programmiersprache: Wird in Maschinencode kompiliert und auf der Hardware des zugrunde liegenden Betriebssystems ausgeführt.

Skriptsprache: Ist eine unstrukturierte Teilmengen von Programmiersprachen. Sie wird in der Regel interpretiert. Es geht hauptsächlich darum, andere Dinge zu "skripten", um etwas zu erreichen. Der Hauptfokus liegt nicht primär darauf, eigene Apps zu erstellen, sondern eine vorhandene App so zu steuern, wie Sie es möchten, z. JavaScript für Browser, TCL, usw.

*** Es gibt jedoch Situationen, in denen eine Programmiersprache in einen Interpreter und umgekehrt umgewandelt wird, z. B. wenn Sie einen C-Interpreter haben, mit dem Sie 'C'-Skripte erstellen können. Skripte werden im Allgemeinen geschrieben, um das Verhalten einer Anwendung zu steuern, während Programmiersprache verwendet wird, um Anwendungen zu erstellen. Aber Vorsicht, die Abgrenzung verschwimmt von Tag zu Tag, wie zum Beispiel bei Python, es hängt davon ab, wie die Sprache verwendet wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X