Skriptsprache
Eine Skript- oder Scriptsprache ist eine Programmiersprache, die Skripts unterstützt. Skripte sind in der Regel kurze Computerprogramme, die Schritte ausführen, die nacheinander von einer Person ausgeführt werden könnten. Dadurch wird eine Arbeit automatisiert, um sie einfacher und zuverlässiger zu machen. Eine Skriptsprache ist oft eine einfachere Sprache und leichter zu erlernen als andere Sprachen, kann aber dennoch viele Dinge tun.
Skripte können innerhalb eines anderen Programms ausgeführt werden, z.B. in einem Webbrowser oder Microsoft Excel. Sie können auch eine Shell sein, die von einer Befehlszeilenschnittstelle aus läuft und Aufrufe an das Betriebssystem (OS) macht. Die Shell gilt als interaktiv - der Benutzer kann wählen, was er eingeben will, und die Shell reagiert auf den Befehl. Diese können zur Steuerung von Jobs auf Großrechnern und Servern verwendet werden.
Manche Leute sagen, eine Skriptsprache müsse an eine bestimmte Verwendung gebunden sein. Andere verwenden eine weiter gefasste Definition und schließen Allzweck-Programmiersprachen ein, die interpretiert und nicht kompiliert werden. Allzweck bedeutet, dass sie auf viele verschiedene Arten für verschiedene Dinge verwendet werden kann. Einige Allzwecksprachen (wie z.B. Java) haben Varianten, die skriptfähig sind (Javascript). Es gibt keine spezifische Regel darüber, was eine Skriptsprache ist und was nicht.
Beispiele
Einige gängige Beispiele für Skriptsprachen:
- Bash und C-Shell, als Steuersprachen für die Unix- oder Unix-ähnlichen Betriebssysteme
- Skripte, die innerhalb einer anderen Anwendung ausgeführt werden, werden als Erweiterungssprache bezeichnet. Webbrowser erlauben verschiedene Arten von Skripten, einschließlich ECMAScript (JavaScript) oder XUL. Die Google-Startseite verwendet beispielsweise JavaScript. Visual Basic für Anwendungen wird innerhalb von Microsoft Office verwendet. Lua ist eine Sprache, die speziell als Erweiterungssprache entwickelt wurde und in vielen Anwendungen verwendet werden kann.
- Zu den Spielen mit Skript-Erweiterungen gehören die virtuelle Welt Second Life und die Trainz Railroad-Simulatoren. Bei anderen Spielen wie Wesnoth sind die verschiedenen tatsächlich gespielten Spiele Skripte, die von anderen Benutzern geschrieben wurden.
- Textverarbeitungssprachen sed und AWK
- Allgemeiner Zweck: Perl, Tcl und Python sind Programmiersprachen auf hoher Ebene (näher an der menschlichen Sprache als an Maschinencode), die für viele verschiedene Dinge verwendet werden können. Einige dieser Sprachen wurden zunächst für einen bestimmten Zweck entwickelt und dann in Allzwecksprachen umgewandelt.
Merkmale
Die meisten Skriptsprachen sollen leicht zu erlernen sein. Sie können oft entweder kurze Dateien mit Quellcode sein oder einen Befehl nach dem anderen in eine Befehlszeilenschnittstelle eingeben, die über eine Read-Eval-Print-Schleife verfügt (REPL, Sprach-Shell). Dies bedeutet in der Regel einen einfachen Befehlssatz. Möglicherweise gibt es keine Funktionen oder ein Main, es läuft einfach von Anfang bis Ende. Wenn etwas nicht funktioniert, kann ein Programmierer schnelle Änderungen vornehmen und es erneut ausführen. Das macht eine Skriptsprache gut geeignet, um schnell einen Prototyp zu erstellen, um zu sehen, ob eine Idee funktioniert.
Beispielsweise nennen die meisten Leute Java nicht als Skriptsprache, weil die Syntax und die Regeln darüber, welche Klassen in welchen Dateien existieren, sehr langatmig sind und weil Java in einer REPL nicht interaktiv ausgeführt werden kann. Es benötigt Dateien mit Quellcode, und diese können nur Definitionen enthalten, die von einer Host-Anwendung oder einem Anwendungsstartprogramm verwendet werden müssen. (Java ist nicht dasselbe wie JavaScript).
Aber Python lässt Wahlmöglichkeiten zu - Funktionen können in eine Datei geschrieben werden, sie kann ohne Funktionen ausgeführt werden und imperativen Programmierstil verwenden oder sogar interaktiv verwendet werden (eine Zeile nach der anderen eingeben und ausführen).
drucken ("Hallo Welt")
Diese eine Zeile Python-Code gibt "Hello World" aus; es wird keine main()-Funktion oder irgendetwas anderes benötigt.
Eine Skriptsprache wird in der Regel aus Quellcode oder Bytecode interpretiert. Allerdings muss etwas das Skript ausführen (interpretieren), damit der Computer es versteht. Dies ist eine Anwendung oder etwas im Betriebssystem. Diese wird oft in einer kompilierten Sprache geschrieben und in Form von Maschinencode verbreitet (als ausführbare Datei, die für Menschen keinen Sinn ergibt).
Skriptsprachen können so konzipiert sein, dass sie von den Personen verwendet werden können, die ein Programm verwenden - Endbenutzer-Entwicklung. Zu anderen Zeiten können sie von Programmierern für den eigenen Gebrauch erstellt werden. Skriptsprachen verwenden oft Abstraktion, eine Form des Versteckens von Informationen. Das bedeutet, dass die Benutzer die Details von Variablentypen, Datenspeicherung und Speicherverwaltung nicht kennen müssen.
Skripte werden oft von der Person, die sie ausführt, angefertigt oder geändert, aber einige werden an andere weitergegeben oder verkauft. Zum Beispiel, wenn große Teile von Spielen in einer Skriptsprache geschrieben werden. Manchmal kann ein Skript kompiliert werden, bevor andere es verwenden. Einmal kompiliert, läuft es schneller und braucht keine weitere Anwendung, um es auszuführen. Und dies verhindert, dass Endbenutzer den Code ändern können.
Geschichte
Die frühen Großrechner (in den 1950er Jahren) waren nicht interaktiv, sondern verwendeten Skripte, die in Batch-Dateien gespeichert waren. IBMs Job Control Language (JCL) ist das gängige Beispiel einer Skriptsprache, die zur Steuerung der Stapelverarbeitung verwendet wurde.
Die ersten interaktiven Shells wurden in den 1960er Jahren hergestellt, um die Fernsteuerung der ersten Time-sharing-Systeme zu unterstützen. Diese verwendeten Shell-Skripte, die Computerprogramme innerhalb eines Computerprogramms, der Shell, ausführen können. Calvin Mooers wird in seiner TRAC-Sprache im Allgemeinen die Erfindung der Befehlsersetzung zugeschrieben. Dadurch können Befehle das Skript verändern (selbstmodifizierender Code). Multics ruft diese aktiven Funktionen auf. Louis Pouzin schrieb um 1964 einen frühen Prozessor für Befehlsskripte namens RUNCOM für CTSS. Stuart Madnick am MIT schrieb 1966 eine Skriptsprache für IBMs CP/CMS. Er nannte diesen Prozessor ursprünglich COMMAND, später EXEC. Multics enthielt einen Ableger von CTSS RUNCOM, auch RUNCOM genannt. EXEC wurde schließlich durch EXEC 2 und REXX ersetzt.
Sprachen wie Tcl und Lua wurden von Anfang an als allgemeine Skriptsprachen entwickelt, die in jede Anwendung eingefügt werden konnten. Andere Sprachen wie Visual Basic for Applications (VBA) konnten vieles von dem Gleichen leisten, mussten aber nur mit bestimmten Anwendungen funktionieren. Die Verwendung einer Allzweck-Skriptsprache anstelle der Erstellung einer neuen Sprache für jede Anwendung erleichtert in der Regel sowohl demjenigen, der die Anwendung schreibt, als auch dem Benutzer, der die Skripts schreibt, die Arbeit.
Arten von Skriptsprachen
Klebstoff-Sprachen
Scripting wird manchmal verwendet, um verschiedene Anwendungen miteinander zu verbinden. Dies wird als Glue-Code bezeichnet, und eine eigens für diesen Zweck entwickelte Sprache ist eine Glue-Sprache. Pipelines und Shell-Scripting sind gängige Beispiele für Glue-Sprachen. Wenn aber viel Logik in eine Skriptdatei geschrieben wird, ist es besser, sie einfach als eine weitere Softwareanwendung zu betrachten, nicht als "Glue".
Leimsprachen sind besonders nützlich zum Schreiben und zur Pflege:
- benutzerdefinierte Befehle für eine Befehlsshell;
- kleinere Programme als solche, die besser in einer kompilierten Sprache implementiert sind;
- "Wrapper"-Programme, die vor oder nach dem Ausführen einer Anwendung wie einer Tabellenkalkulation, einer Datenbank, eines Compilers usw. einige automatisierte Dinge tun;
- Skripte, die sich oft ändern können;
Kleben Sie Sprachbeispiele:
- AppleScript
- awk
- JCL
- Lua
- m4
- Perl
- Unix-Shell-Skripte (ksh, csh, bash, sh und andere)
- VBScript
- Arbeitsablauf-Sprache
- Windows PowerShell
- XSLT
Geräte wie programmierbare Taschenrechner können auch ihre eigenen Klebesprachen haben. Zum Beispiel kann der Texas Instruments TI-92 ab Werk mit einer Kommandoskriptsprache programmiert werden. Der TI-NSpire-Rechner versteht die Lua-Sprache. Andere verstehen eine Art Basic-Sprache, oder vielleicht Lisp oder etwas anderes.
Jobsteuerungssprachen und Shells
Diese Gruppe ist aus der Automatisierung der Job-Steuerung hervorgegangen, die sich auf das Starten und Kontrollieren des Verhaltens von Systemprogrammen bezieht, ausgehend von der JCL von IBM. Viele der Dolmetscher dieser Sprachen arbeiten auch als Kommandozeilen-Interpreter, wie die Unix-Shell oder die MS-DOS COMMAND.COM. Andere, wie z.B. AppleScript, bieten die Verwendung von englischsprachigen Befehlen zur Erstellung von Skripten.
GUI-Skripting
Wenn grafische Benutzeroberflächen erstellt werden, ist eine Möglichkeit zum Testen erforderlich. Spezielle Skriptsprachen wurden entwickelt, um grafische Fenster, Menüs, Schaltflächen usw. so zu steuern, wie es ein menschlicher Benutzer tun würde. Oft können diese dazu verwendet werden, genau das zu kopieren, was eine Person tut (Bewegen der Maus, Klicken oder Eintippen auf einer Tastatur). Diese Aktion oder Gruppe von Aktionen, die kopiert und gespeichert wird, wird als Makro bezeichnet.
Anwendungsspezifische Sprachen
Viele große Anwendungen enthalten eine Skriptsprache, die speziell für diese Anwendung entwickelt wurde. Die Anwendung kann ein Spiel oder ein Geschäftsprogramm sein. Diese Art von Sprache wird für eine einzelne Anwendung erstellt. Sie lassen sie wie eine Allzwecksprache aussehen (z.B. QuakeC, nach C modelliert), sie haben benutzerdefinierte Merkmale, die sie unterscheiden.
Erweiterung/einbindbare Sprachen
Dies ist wie eine anwendungsspezifische Skriptsprache, da sie eine Anwendung steuert, aber die Sprache kann in vielen Anwendungen verwendet werden.
JavaScript begann als Skriptsprache in Web-Browsern; heute ist es jedoch eine allgemein einsetzbare, einbettbare Sprache. Es wird zum Beispiel auch in Adobe-Produkten verwendet.
Einige Sprachen wechseln im Laufe der Zeit von einem Typ zum anderen, in der Regel, weil sie die Möglichkeit bieten, mehr Dinge zu tun.
Fragen und Antworten
F: Was ist eine Skriptsprache?
A: Eine Skript- oder Scriptsprache ist eine Programmiersprache, die Skripts unterstützt.
F: Was sind Skripte?
A: Skripte sind in der Regel kurze Computerprogramme, die Schritte ausführen, die auch von einem Menschen einzeln ausgeführt werden könnten.
F: Warum sind Skripts nützlich?
A: Sie automatisieren eine Aufgabe und machen sie einfacher und zuverlässiger.
F: Ist eine Skriptsprache schwer zu erlernen?
A: Eine Skriptsprache ist oft eine einfachere Sprache und leichter zu erlernen als andere Sprachen, kann aber dennoch viele Dinge tun.
F: Wo können Skripts ausgeführt werden?
A: Skripts können innerhalb eines anderen Programms ausgeführt werden, z. B. in einem Webbrowser oder in Microsoft Excel.
F: Was ist eine Shell in Skriptsprachen, und wie wird sie verwendet?
A: Sie können auch eine Shell sein, die über eine Befehlszeilenschnittstelle ausgeführt wird und Aufrufe an das Betriebssystem (OS) macht. Die Shell gilt als interaktiv - der Benutzer kann wählen, was er eingeben möchte, und die Shell antwortet auf den Befehl. Diese können zur Steuerung von Aufträgen auf Mainframes und Servern verwendet werden.
F: Kann eine Allzwecksprache eine Skriptsprache sein?
A: Manche Leute sagen, eine Skriptsprache müsse an einen bestimmten Zweck gebunden sein. Andere verwenden eine weiter gefasste Definition und schließen Allzweck-Programmiersprachen ein, die interpretiert und nicht kompiliert werden. Universell bedeutet, dass sie auf viele verschiedene Arten für unterschiedliche Zwecke eingesetzt werden kann. Einige Allzwecksprachen (z.B. Java) haben Variationen, die mit Skripten versehen werden können. Es gibt keine spezifische Regel dafür, was eine Skriptsprache ist und was nicht.