Unterschied zwischen einem Skript und einem Programm? [geschlossen]


76

Was ist der Unterschied zwischen einem Skript und einem Programm? Die meiste Zeit höre ich, dass ein Skript ausgeführt wird. Ist das nicht ein Programm? Ich bin etwas verwirrt, kann jemand darauf näher eingehen?

Antworten:


44

Ich sehe das anders.

Ein "Skript" ist Code, der extern oder unabhängig auf ein System einwirkt und entfernt oder deaktiviert werden kann, ohne das System selbst zu deaktivieren.

Ein "Programm" ist Code, der ein System darstellt. Der Code des Programms kann modular geschrieben sein, wobei die Bedenken gut voneinander getrennt sind. Der Code ist jedoch grundsätzlich intern und vom System selbst abhängig.

Skripte werden oft interpretiert, aber nicht immer. Programme werden oft kompiliert, aber nicht immer.


3
Was bedeutet das System ?
Entdecker

@explorer - Dies ist das System, auf das in einem ersten Teil des Absatzes Bezug genommen wird.
Rätselhaftigkeit

1
:-) Okay! Auf welches System wird im ersten Teil des Absatzes Bezug genommen? Ist es eine Anwendung, ein Betriebssystem, eine Anwendung mit vielen integralen / einzelnen Teilen oder irgendetwas anderes?
Entdecker

Keine Ursache! Ich habe verstanden! Ich habe nicht richtig interpretiert bildet früher.
Entdecker

Mein Zweifel ist geklärt! Vielen Dank!
Entdecker

44

Für mich besteht der Hauptunterschied darin, dass ein Skript interpretiert wird , während ein Programm ausgeführt wird (dh die Quelle wird zuerst kompiliert und das Ergebnis dieser Kompilierung wird erwartet) .


Wikipedia scheint mir darin zuzustimmen:

Skript :

"Skripte" unterscheiden sich vom Kerncode der Anwendung, der normalerweise in einer anderen Sprache geschrieben ist, und werden häufig vom Endbenutzer erstellt oder zumindest geändert.
Skripte werden häufig aus Quellcode oder Bytecode interpretiert, während die von ihnen gesteuerten Anwendungen traditionell zu nativem Maschinencode kompiliert werden.

Programm :

Das Programm verfügt über eine ausführbare Form, mit der der Computer die Anweisungen direkt ausführen kann.
Das gleiche Programm in seiner für Menschen lesbaren Quellcodeform, von der ausführbare Programme abgeleitet sind (z. B. kompiliert)


6
-1 weil Wikipedia natürlich immer richtig ist. Die Unterscheidung zwischen zusammengestellt und interpretiert ist für die Diskussion nicht relevant.
Nick Bastin

3
Sie sagen: "(dh die Quelle wird zuerst kompiliert und das Ergebnis dieser Kompilierung wird erwartet)." Meinen Sie "Kompilierung wird ausgeführt"?
Big Sharpie

11

In der Regel ist ein Skript ein leichtes, schnell erstelltes Tool, das möglicherweise zum einmaligen Gebrauch bestimmt ist. Es wird normalerweise interpretiert, nicht kompiliert. Python und Bash sind Beispiele für Sprachen, die zum Erstellen von Skripten verwendet werden.

Ein Programm ist in einer kompilierten Sprache wie C oder C ++ erstellt und wird aus diesem Grund normalerweise schneller ausgeführt als ein Skript. Größere Tools werden oft eher als "Programme" als als Skripte geschrieben - kleinere Tools lassen sich leichter als Skripte entwickeln, aber Skripte können unhandlich werden, wenn sie größer werden. Anwendungs- und Systemsprachen (die zum Erstellen von Programmen / Anwendungen verwendet werden) verfügen über Tools, mit denen dieses Wachstum einfacher verwaltet werden kann.

Normalerweise können Sie ein Skript in einem Texteditor anzeigen, um zu sehen, was es tut. Mit einem ausführbaren Programm ist dies nicht möglich. Die Anweisungen des letzteren wurden in Bytecode oder Maschinensprache kompiliert, was das Verständnis für Menschen ohne spezielle Tools sehr erschwert.

Beachten Sie die Anzahl der "Häufigkeiten" und "Normalen" oben - die Begriffe sind nebulös und kreuzen sich manchmal.


11

Sehen:

Der Unterschied zwischen einem Programm und einem Skript

Ein Skript ist auch ein Programm, aber ohne eine undurchsichtige Ebene, die den (Quellcode) verbirgt, während ein Programm Kleidung enthält, können Sie den Quellcode nur sehen, wenn er dekompilierbar ist.

Skripte benötigen andere Programme , um sie auszuführen, während Programme keine benötigen.


8
Dieser Link jetzt 404s.
Nino Walker

2
Dieser Link jetzt 200s.
Mark Fisher

"Dieser Link" bietet eine viel bessere Erklärung als "diese Antwort". Der Zweck des Kompilierens von Code besteht darin, nichts zu "verstecken" oder "anzuziehen" ... Ich bin überrascht, dass diese Antwort so viele Stimmen erhalten hat (und von einem Benutzer mit so hohen Wiederholungszahlen stammt), da sie nur dazu dient, dass Neulinge aufhören zu fragen eine häufig gestellte Frage, bei der die kindlichen Fehlinformationen stark vereinfacht und verbreitet werden.
Ashleedawg

7

Ein "Programm" ist im Allgemeinen eine Folge von Anweisungen, die so geschrieben sind, dass ein Computer bestimmte Aufgaben ausführen kann .

Ein "Skript" ist Code, der in einer Skriptsprache geschrieben ist. Eine Skriptsprache ist nichts anderes als eine Art Programmiersprache, in der wir Code schreiben können, um eine andere Softwareanwendung zu steuern .

Tatsächlich gibt es zwei Arten von Programmiersprachen:

ein. Skriptsprache

b. Kompilierte Sprache

Bitte lesen Sie dies: Skripte und kompilierte Sprachen


3

Skripte werden normalerweise (von einer anderen ausführbaren Datei) interpretiert.

Ein Programm ist normalerweise eine eigenständige kompilierte ausführbare Datei (obwohl es möglicherweise Bibliotheksabhängigkeiten aufweist), die aus Maschinencode oder Bytecodes besteht (für Just-in-Time-kompilierte Programme).


2

Aus meiner Sicht ist der Hauptunterschied zwischen Skript und Programm:

Skripte können mit den anderen Technologien verwendet werden. Beispiel: PHP-Skripte, Javascripts usw. können in HTML verwendet werden.

Programme sind eigenständige Codestücke, die niemals in die anderen Technologien eingebettet werden können.

Wenn ich mich an irgendeiner Stelle irre, korrigiere mich bitte. Ich werde deine Korrektur bewundern.


Was ist mit Python-Skript? Auch der Bestätigungs-PHP-Code, der mit HTML verwendet werden kann, ist falsch. Sie haben nur PHP-Code. Dateierweiterung ist .php. In Ihrem Programm können Sie HTML-Code drucken. Sie können dasselbe mit Python, Java, C #, C usw. tun. Alle (wenn Webprogramme) produzieren HTML-Code.
DonJoe

2

Das Scripting hat wirklich zwei Dimensionen gegenüber der Programmrealität:

  1. Ist die Sprache besonders bei String-Operationen leistungsfähig genug, um mit einem Makroprozessor wie der Posix-Shell und insbesondere Bash zu konkurrieren? Wenn es nicht besser als Bash ist, um eine Funktion auszuführen, macht es nicht viel Sinn, sie zu verwenden.

  2. Ist die Sprache bequem und schnell gestartet? Java, Scala, JRuby, Closure und Groovy sind leistungsstarke Sprachen, aber Java erfordert viel Boilerplate und die JVM, die sie alle benötigen, dauert einfach zu lange, um gestartet zu werden.

OTOH, Perl, Python und Ruby starten alle schnell und verfügen über leistungsstarke String-Handling-Operationen (und so ziemlich alles andere), sodass sie in der Regel das manchmal herabgesetzte, aber nicht leicht zu übergreifende "Scripting" belegen " Welt. Es stellt sich heraus, dass sie auch ganze traditionelle Programme gut ausführen können.

In der Schwebe bleiben Sprachen wie Javascript, die nicht für Skripte verwendet werden, aber möglicherweise sein könnten. Update: da dies geschrieben wurde, wurde node.js auf mehreren Plattformen veröffentlicht. In anderen Nachrichten wurde die Frage geschlossen. "Naja."


0

Ein Framework oder ein ähnliches Schema führt ein Skript aus / interpretiert es, um eine Aufgabe auszuführen. Ein Programm wird kompiliert und von einem Computer ausgeführt, um eine Aufgabe auszuführen


0

IMO-Skript - ist die Art von Anweisung, die Programm ausführen soll Programm - ist eine Art Anweisung, die Hardware ausführen soll

Obwohl ich denke, dass .NET / JAVA-Bytecodes Skripte nach dieser Definition sind


0

Skript : Es enthält eine Reihe von Anweisungen für die "Skriptsprache", die steuern, andere Systemprogramme ausführen und Anwendungen planen.

Programm : Es enthält eine Reihe von Anweisungen, die beim Kompilieren des Programms mit dem Compiler bestimmte Aufgaben ausführen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.