Zum Inhalt springen

Skriptsprache

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. Oktober 2003 um 19:40 Uhr durch Stefan Kühn (Diskussion | Beiträge) (typo). Sie kann sich erheblich von der aktuellen Version unterscheiden.


Skriptsprachen sind Programmiersprachen, die die Ausführung des Programmcodes ohne getrennte Übersetzungsphase ermöglichen.

Programme, die in Skriptsprachen geschrieben sind, werden auch Skripte genannt. Es handelt sich immer um Textdateien oder Textfragmente, die mit einem normalen Editor bearbeitet werden können.

Man kann Skriptsprachen in drei Kategorien einteilen:

  1. Skriptsprachen, die von den Kommandozeileninterpretern der Betriebssysteme abgeleitet sind. Die Interpreter sind vorrangig für interaktive Benutzung, das heisst für die Eingabe von Kommandos, ausgelegt. Die Eingabesprache wird um Variablen, arithmetische Ausdrücke, Kontrollstrukteren (if, while) und anderem erweitert und ermöglicht so die Automatisierung von Aufgaben, indem kleine "Programme" in Dateien geschrieben werden. Diese Dateien können dann vom Interpreter ausgeführt werden. Die Dateien nennt man unter 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).
  2. Sprachen, die als Teil eines Anwenderprogrammes zur Automatisierung von Aufgaben oder zur Erweiterung der Fähigkeiten des Programmes dienen. Teilweise wird auch ein Teil der Funktionalität des Programmes 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) fallen darunter. Einige dieser Sprachen stehen als Programm-Bücherei zur Verfügung. Ein Programmierer kann diese Bücherei 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 dem Grafikinterface Tk wurden Anwendungen realisiert, die ausschließlich in TCL programmiert sind.
  3. Sprachen, die sich als vollwertige Programmiersprachen verstehen und sich von den eigentlichen Programmiersprachen nur dadurch unterscheiden, dass keine separate Übersetzungsphase notwendig ist. 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 und ruby). Diese Sprachen ermöglichen teilweise objektorientiertes Programmieren und haben für grosse Programmprojekte notwendige Konzepte wie Namensräume und Kapselung. Gegenüber klassischen Programmiersprachen enthalten sie meist eine komfortable Speicherverwaltung in Form einer Garbage Collection, die übliche Probleme bei der Verwaltung des Speicherplatzes umgeht. Die schlechtere Performance gegenüber klassischen Programmiersprachen wird durch Vorübersetzung, meist in so genannten Bytecode, und überdurchschnittlich gute Algorithmen teilweise ausgeglichen.

Einige Skriptsprachen enthalten Anweisungen, etwa zur Textbearbeitung oder graphischen Darstellung, die recht komplex sind und einigen Programmieraufwand erfordern, innerhalb der Sprache aber sehr einfach angewendet werden können.

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:

  • interpretierend
  • dynamische automatische Typenkonversion
  • automatisches Speicher-Management
  • dynamische Klassenzugehörigkeit oder prototypenbasierte Vererbung
  • implizit deklarierte Variablen
  • dynamische Funktionsnamen (Funktionsnamen müssen nicht vorab einem Compiler bekannt sein)
  • späte syntaktische Fehlererkennung (erst wenn ein konkreter Quelltext interpretiert wird, werden dort Fehler erkannt)


Beispiele

Kommandointerpreter

  • 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

Skriptsprachen, die als Bibliothek verfügbar sind

  • TCL - Tool Command Language von J. Ousterhout
  • GUILE - GNU Extension Language


Skriptsprachen verschiedener Programme

und viele andere ...

Skriptsprachen im WWW

Als Programmiersprachen konzipierte Skriptsprachen

  • awk - Textprozessor unter Unix
  • Perl - Erweiterter Textprozessor, vollwertige Sprache
  • REXX - Skriptsprache von IBM
  • Ruby - objektorientierte Skriptsprache

Siehe auch: Makro