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:
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.
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)
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.
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.
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
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).
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.
.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.
Das Scripting hat wirklich zwei Dimensionen gegenüber der Programmrealität:
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.
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."
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