Skriptsprachen sind Programmiersprachen, die vor allem für kleine, überschaubare Programmieraufgaben gedacht sind. Skriptsprachen verzichten oft auf bestimmte Sprachelemente, deren Nutzen erst bei der Bearbeitung größerer Projekte zum Tragen kommen. So wird etwa in vielen Skriptsprachen auf den Deklarationszwang von Variablen verzichtet - vorteilhaft bei kleinen Skripten, bei großen Programmen etwa wegen der fehlenden Überprüfungsmöglichkeit von Tippfehlern in Variablennamen aber von Nachteil.
Programme, die in Skriptsprachen geschrieben sind, werden auch Skripte genannt. Skripte werden häufig in Form von Quelltextdateien ausgeliefert, um so ein einfaches Bearbeiten und Anpassen des Programms zu ermöglichen. Dementsprechend werden Skripte für gewöhnlich ohne getrennte Übersetzungsphase ausgeführt.
Man kann Skriptsprachen in drei Kategorien einteilen:
- Skriptsprachen, die von den Kommandozeileninterpretern der Betriebssysteme abgeleitet sind. Die Interpreter sind vorrangig für interaktive Benutzung, d.h. für die Eingabe von Kommandos, ausgelegt. Die Eingabesprache wird um Variablen, arithmetische Ausdrücke, Kontrollstrukturen (if, while) und anderes erweitert und ermöglicht so die Automatisierung von Aufgaben (z.B. bei der unbeaufsichtigten Installation), indem "kleine Programme" in Dateien geschrieben werden. Diese Dateien können dann vom Interpreter ausgeführt werden. Die Dateien nennt man unter dem Betriebssystem Unix Shell-Skripte (ausgeführt von einer der Unix-Shells sh, csh, …) oder unter DOS bzw. Windows Batch-Dateien (ausgeführt von command.com bzw. cmd.exe).
- Sprachen, die als Teil eines Anwenderprogramms zur Automatisierung von Aufgaben oder zur Erweiterung der Fähigkeiten des Programms dienen. Teilweise wird auch ein Teil der Funktionalität des Programms in der Skriptsprache realisiert. Zu diesen Sprachen gehören Visual Basic for Applications (VBA) (Skriptsprache in Microsoft-Programmen) und Emacs-Lisp (Skriptsprache des Editors Emacs). Anwender können durch einfache Textdateien neue Funktionen erzeugen oder bestehende abändern. Auch die WWW-Sprachen (JavaScript, VBScript, Actionscript) fallen darunter. Einige dieser Sprachen stehen als Programmbibliothek zur Verfügung. Ein Programmierer kann diese Bibliothek einfach in sein Programm einbinden, es besitzt dann eine vollwertige Skriptsprache. Tcl (Tool Command Language) ist das bekannteste Beispiel einer solchen Sprache, die in vielen – auch kommerziellen Programmen – Einzug gefunden hat. Tcl gestattet auch die Erzeugung von eigenen Programmen. Insbesondere in Verbindung mit der grafischen Benutzeroberfläche Tk wurden Anwendungen realisiert, die ausschließlich in Tcl programmiert sind. Insbesondere bei Web-Servern wird auch gerne von Server-basierten Skriptsprachen gesprochen, um zu betonen, dass hier vom Client angesteuerte Skripte auf dem Server ablaufen.
- Sprachen, die sich als vollwertige Programmiersprachen verstehen. Einige dieser Sprachen sind für Spezialaufgaben konzipiert (z.B. der Textprozessor awk), andere sind von Anfang an als allgemein verwendbare Sprache geplant (Beispiele sind Perl, Python und Ruby). Diese Sprachen ermöglichen teilweise objektorientiertes Programmieren und haben für große Programmprojekte notwendige Konzepte wie Namensräume und Kapselung.
Mit Skriptsprachen kann man im Gegensatz zu klassischen Programmiersprachen manchmal mit wenig Quelltext verhältnismäßig viel erreichen.
Bei einigen Skriptsprachen gibt es keine Unterscheidung zwischen Code und Daten, dadurch erreicht man sehr hohe Flexibilität. Diese Sprachen können hervorragend zur schnellen (ad-hoc) Lösung von kleinen Problemen oder zum Rapid Prototyping eingesetzt werden.
Häufig vorhandene Merkmale sind:
- implizit deklarierte Variablen; dazu gehören auch dynamische Funktionsnamen (Funktionsnamen müssen dem Compiler nicht vorab bekannt sein)
- dynamische, automatische Typumwandlung
- automatisches Speicher-Management
- dynamische Klassenzugehörigkeit oder prototypenbasierte Vererbung
- häufig werden Skripte ohne getrennte Übersetzungsphase ausgeführt ("interpretiert")
- späte syntaktische Fehlererkennung (Bei Verwendung eines Interpreters werden Fehler erst bei der Ausführung erkannt.)
Beispiele
Kommandozeileninterpreter
- COMMAND.COM – MSDOS Kommandointerpreter (Batchdateien), auch in älteren Windows-Versionen
- CMD.EXE – Kommandointerpreter von neueren Windows-Versionen
- sh – Unix Bourne Shell (die klassische Unix-Shell)
- bash – GNU-Ersatz und Erweiterung der sh-Shell
- csh – BSD Shell (Unix-Versionen aus Berkeley)
- ksh – Korn-Shell
- tclsh – Tool command language (Tcl)
Skriptsprachen, die als Bibliothek verfügbar sind
- Lua – Skriptsprache zum Einbinden in Programme, oft in Computerspielen zu finden
- Tcl – Tool Command Language von J. Ousterhout
- GUILE – GNU Extension Language
- S-Lang – Plattformunabhängige Skriptsprache zum Einbinden in Programme
Skriptsprachen verschiedener Programme
- AppleScript – Skriptsprache von Mac OS
- Elisp – Skriptsprache des Emacs-Editors
- VBA – Visual Basic for Applications (Microsoft-Produkte; kompilierbar)
- LPC – C ähnliche Sprache für MUDs
- REXX – insbesondere unter OS/2 als Makrosprache eingesetzt, z. B. im "Erweiterten Editor" EPM
- Unreal Script - Skriptsprache der Unreal Engine
Skriptsprachen im WWW
ASP ist keine Scriptsprache; beide eig. Sprachen sind hier erwähnt --Tobias 18:10, 13. Feb 2005 (CET) -
- PHP – ursprünglich Personal Home Page Tools, heute ein rekursives Akronym PHP: Hypertext Preprocessor
- JavaScript, als ECMAScript standardisiert; auch JScript, JScript .NET (MSIE, ASP) - siehe auch DHTML
- VBScript – Visual Basic Skriptsprache (neben JScript in ASP verwendet)
- DTML (Document Template Markup Language) – serverseitige Skriptsprache von Zope
Als Programmiersprachen konzipierte Skriptsprachen
- awk – Textprozessor unter Unix
- Perl – Erweiterter Textprozessor, vollwertige Sprache
- Python – objektorientierte Programmiersprache
- REXX – Skriptsprache von IBM
- Ruby – objektorientierte Skriptsprache
- REBOL – Skriptsprache von Carl Sassenrath
Siehe auch: Makro