Skriptsprache: Unterschied zwischen den Versionen
(37 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
* Skripte werden fast ausschließlich in Form von [[Quelltext]]dateien ausgeliefert, um so ein einfaches Bearbeiten und Anpassen des Programms zu ermöglichen | * Skripte werden fast ausschließlich in Form von [[Quelltext]]dateien ausgeliefert, um so ein einfaches Bearbeiten und Anpassen des Programms zu ermöglichen | ||
== Merkmale == | === Merkmale === | ||
; Häufige Merkmale | ; Häufige Merkmale | ||
{| | |||
| implizit deklarierte [[Variable (Programmierung)|Variablen]] || dazu gehören auch dynamische Funktionsnamen | |||
|- | |||
| [[dynamische Typisierung]] || | |||
|- | |||
| automatische [[Speicherverwaltung]] || primär [[automatische Speicherbereinigung]] | |||
|- | |||
| dynamische [[Klasse (Objektorientierung)|Klassenzugehörigkeit]] oder [[Prototypenbasierte Programmierung|prototypenbasierte]] [[Vererbung (Programmierung)|Vererbung]] || | |||
|- | |||
| unmittelbare Ausführung || durch Interpretation des Quelltextes ohne getrennte Übersetzungsphase | |||
|} | |||
Bei einigen Skriptsprachen kann der Programmcode (ebenso wie andere Daten) durch das Programm selbst manipuliert werden; das macht jene Sprachen besonders flexibel | Bei einigen Skriptsprachen kann der Programmcode (ebenso wie andere Daten) durch das Programm selbst manipuliert werden; das macht jene Sprachen besonders flexibel | ||
Zeile 22: | Zeile 28: | ||
Die Anwendungsgebiete und Eigenschaften konventioneller Programmiersprachen und Skriptsprachen überschneiden sich mittlerweile stark (siehe hierzu den Abschnitt [[#Abgrenzung|Abgrenzung]]), weshalb eine strikte Trennung zwischen konventionellen Programmiersprachen und Skriptsprachen nur selten möglich ist | Die Anwendungsgebiete und Eigenschaften konventioneller Programmiersprachen und Skriptsprachen überschneiden sich mittlerweile stark (siehe hierzu den Abschnitt [[#Abgrenzung|Abgrenzung]]), weshalb eine strikte Trennung zwischen konventionellen Programmiersprachen und Skriptsprachen nur selten möglich ist | ||
== Abgrenzung == | === Abgrenzung === | ||
Aus [[Softwarearchitektur|architektonischer]] Sicht werden Skriptsprachen häufig verwendet, um bestehende [[Softwarekomponente|Komponenten]] in einem [[Anwendungsprogramm]] zu verbinden oder aufzurufen | Aus [[Softwarearchitektur|architektonischer]] Sicht werden Skriptsprachen häufig verwendet, um bestehende [[Softwarekomponente|Komponenten]] in einem [[Anwendungsprogramm]] zu verbinden oder aufzurufen | ||
* Die Komponenten selbst werden in einer komplexeren Programmiersprache entwickelt | * Die Komponenten selbst werden in einer komplexeren Programmiersprache entwickelt | ||
Zeile 34: | Zeile 40: | ||
* Mit modernen Skriptsprachen können daher manche Anwendungen, etwa zur Auswertung von Daten, vollständig unter Verzicht auf externe Programme implementiert werden | * Mit modernen Skriptsprachen können daher manche Anwendungen, etwa zur Auswertung von Daten, vollständig unter Verzicht auf externe Programme implementiert werden | ||
== Kategorien == | === Kategorien === | ||
=== Kommandozeileninterpreter | {| class="wikitable options" | ||
|- | |||
! Kategorie !! Beschreibung | |||
|- | |||
| [[#Kommandozeileninterpreter|Kommandozeileninterpreter]] || | |||
|- | |||
| [[#Bibliotheken|Bibliotheken]] || | |||
|- | |||
| [[#Skriptsprachen in Programme|Skriptsprachen in Programme]] || | |||
|- | |||
| [[#Skriptsprachen im WWW|Skriptsprachen im WWW]] || | |||
|- | |||
| [[#Selbständige Skriptsprachen|Selbständige Skriptsprachen]] || | |||
|} | |||
== Kommandozeileninterpreter == | |||
Manche Skriptsprachen sind von den [[Kommandozeileninterpreter]]n der Betriebssysteme abgeleitet | Manche Skriptsprachen sind von den [[Kommandozeileninterpreter]]n der Betriebssysteme abgeleitet | ||
* Die Interpreter sind vorrangig für interaktive Benutzung, d. h. für die Eingabe von Kommandos, ausgelegt | * Die Interpreter sind vorrangig für interaktive Benutzung, d. h. für die Eingabe von Kommandos, ausgelegt | ||
Zeile 45: | Zeile 66: | ||
Abzugrenzen sind Kommandozeileninterpreter von interaktiven Sprachen (wie z. B. [[Lisp]], [[Python (Programmiersprache)|Python]], [[Tcl]] oder [[Perl (Programmiersprache)|Perl]] im [[Debugger]]), die zum Testen und Debuggen interaktive Programmabschnitte ausführen können, aber nicht so eng im Betriebssystem integriert sind | Abzugrenzen sind Kommandozeileninterpreter von interaktiven Sprachen (wie z. B. [[Lisp]], [[Python (Programmiersprache)|Python]], [[Tcl]] oder [[Perl (Programmiersprache)|Perl]] im [[Debugger]]), die zum Testen und Debuggen interaktive Programmabschnitte ausführen können, aber nicht so eng im Betriebssystem integriert sind | ||
= | {| class="wikitable options" | ||
|- | |||
! Option !! Beschreibung | |||
|- | |||
| [[Bourne-Shell]] (''sh'') || Unix-Bourne-Shell (die klassische Unix-Shell) | |||
|- | |||
| [[Unix-Shell#Die Bourne-Again-Shell|bash]] || [[GNU-Projekt|GNU]]-Ersatz und Erweiterung der ''sh''-Shell | |||
|- | |||
| [[Kornshell]] (''ksh'') || Weiterentwicklung der klassischen ''sh''-Shell | |||
|- | |||
| [[C-Shell]] (''csh'') || [[Berkeley Software Distribution|BSD]] Shell (Unix-Versionen aus Berkeley) | |||
|- | |||
| [[cmd.exe]] || Kommandointerpreter von Windows ab [[Windows NT]] | |||
|- | |||
| [[PowerShell]] || Kommandointerpreter u. a. für Windows | |||
|- | |||
| [[TACL]] || Kommandointerpreter von [[Tandem Computers|Tandem]]-Systemen | |||
|- | |||
| [[Digital Command Language]] (kurz '''DCL''') || Kommandosprache für [[Virtual Memory System|VMS]]-Plattformen | |||
|} | |||
=== Skriptsprachen, die als Bibliothek verfügbar sind = | == Bibliotheken == | ||
; Skriptsprachen, die als Bibliothek verfügbar sind | |||
{| class="wikitable options" | |||
|- | |||
! Sprache !! Beschreibung | |||
|- | |||
| [[GNU Guile]] || GNU Extension Language | |||
|- | |||
| [[Lua]] || Skriptsprache zum Einbinden in Programme, oft in [[Computerspiel]]en zu finden | |||
|- | |||
| [[AngelScript]] || Skriptsprache zum Einbinden in Programme, oft in [[Computerspiel]]en zu finden | |||
|- | |||
| [[S-Lang]] || [[plattformunabhängig]]e Skriptsprache zum Einbinden in Programme | |||
|- | |||
| [[Sleep (Programmiersprache)|Sleep]] || In [[Java (Programmiersprache)|Java]] geschriebene Skriptsprache zum Einbinden in Java-Programme | |||
|- | |||
| [[Squirrel (Programmiersprache)|Squirrel]] || durch Lua inspirierte Skriptsprache mit [[C (Programmiersprache)|C]]-ähnlicher Syntax | |||
|- | |||
| [[Tcl]] || Tool Command Language von J. Ousterhout | |||
|- | |||
| [[Visual Basic Script|VBScript]] und [[JScript]] || Standardskriptsprachen von Windows | |||
|- | |||
| [[Windows PowerShell]] || Microsofts Skriptsprache zum Einbinden in [[.NET (Oberbegriff)|.NET]]-Programme | |||
|} | |||
== Skriptsprachen in Anwendungen == | |||
Skriptsprachen können auch in [[Anwendungsprogramm]]en zur Automatisierung von Aufgaben oder durch Erweiterung der Fähigkeiten des Programms dienen | Skriptsprachen können auch in [[Anwendungsprogramm]]en zur Automatisierung von Aufgaben oder durch Erweiterung der Fähigkeiten des Programms dienen | ||
* Teilweise wird auch ein Teil der Funktionalität des Programms selbst in dieser Skriptsprache realisiert | * Teilweise wird auch ein Teil der Funktionalität des Programms selbst in dieser Skriptsprache realisiert | ||
Zeile 76: | Zeile 121: | ||
Im Gegensatz zu [[Plug-in]]s sind Skripte bzw. Makros wesentlich flexibler und werden vor allem für kleine Automatisierungen angewendet | Im Gegensatz zu [[Plug-in]]s sind Skripte bzw. Makros wesentlich flexibler und werden vor allem für kleine Automatisierungen angewendet | ||
= | {| class="wikitable options" | ||
|- | |||
! Sprache !! Beschreibung | |||
|- | |||
| [[AppleScript]] || Skriptsprache von [[macOS]] und [[Mac OS Classic]] | |||
|- | |||
| [[AutoHotkey]] || eine Skriptsprache für Windows und Windows-Programme, kompilierbar | |||
|- | |||
| [[AutoIt]] || eine Alternative zum [[Windows Script Host]] | |||
|- | |||
| [[Emacs Lisp]] || Skriptsprache des [[Emacs]]-Editors | |||
|- | |||
| [[Google Apps Script]] || zur programmierten Automatisierung von [[Google Workspace]] Anwendungen | |||
|- | |||
| [[LPC (Programmiersprache)|LPC]] || C ähnliche Sprache für [[Multi User Dungeon|MUDs]] | |||
|- | |||
| [[Python (Programmiersprache)|Python]] || verschiedene, vor allem [[Open Source]], Programme (z. B. [[LibreOffice]], [[Blender (Software)|Blender]] und [[GIMP]]) lassen sich damit skripten | |||
|- | |||
| OpenOffice-Basic || bei OpenOffice enthaltene Basic-Makrosprache, ähnlich VBA bei MS-Office | |||
|- | |||
| [[QuakeC]] || Skriptsprache des [[Computerspiel]]s ''[[Quake]]'' | |||
|- | |||
| [[REXX]] || insbesondere unter [[z/VM]] und [[OS/2]] als Makrosprache eingesetzt (z. B. im „Erweiterten Editor“ EPM) | |||
|- | |||
| [[Tcl]] || im [[AOLserver]] eingesetzte Makrosprache | |||
|- | |||
| [[UnrealScript]] || Skriptsprache der [[Unreal Engine]] | |||
|- | |||
| [[Vim#Vim-Skriptsprache|Vim-Skriptsprache]] | |||
|- | |||
| [[Visual Basic for Applications|VBA]] (Visual Basic for Applications) || Skriptsprache für [[Microsoft]]-Produkte; ist auch kompilierbar | |||
|- | |||
| [[Visual Basic Script|VBScript]] || Standardskriptsprache von Windows, ab [[Windows 98]] | |||
|- | |||
| [[JScript]] || Standardskriptsprache von Windows, ab [[Internet Explorer#Version 3.0|Internet Explorer 3.0]] ([[Windows 3.1]], [[Microsoft Windows NT 3.5|NT 3.5]]) | |||
|} | |||
== Skriptsprachen im WWW == | |||
Für das [[WWW]] werden Skriptsprachen häufig auf den Servern verwendet, um dynamische Seiten oder ganze [[Webanwendung]]en zu erstellen | Für das [[WWW]] werden Skriptsprachen häufig auf den Servern verwendet, um dynamische Seiten oder ganze [[Webanwendung]]en zu erstellen | ||
* Dies geschieht zum Beispiel bei den [[Wiki]]s, bei [[Internetforum|Foren]], [[Gästebuch|Gästebüchern]] und bei [[Elektronischer Handel|Onlinegeschäften]] | * Dies geschieht zum Beispiel bei den [[Wiki]]s, bei [[Internetforum|Foren]], [[Gästebuch|Gästebüchern]] und bei [[Elektronischer Handel|Onlinegeschäften]] | ||
Zeile 100: | Zeile 164: | ||
Des Weiteren werden clientseitige Skriptsprachen auch in den [[Webseite]]n selbst eingebunden und in den [[Webbrowser|Browsern]] ausgeführt | Des Weiteren werden clientseitige Skriptsprachen auch in den [[Webseite]]n selbst eingebunden und in den [[Webbrowser|Browsern]] ausgeführt | ||
==== Server | ==== Server ==== | ||
{| class="wikitable options" | |||
|- | |||
! Sprache !! Beschreibung | |||
|- | |||
| [[Perl (Programmiersprache)|Perl]] || erste Skriptsprache, die weite Verbreitung in Webservern fand | |||
|- | |||
| [[PHP]] || die verbreitetste Skriptsprache auf Webservern; wurde direkt für diese Aufgabe konzipiert | |||
|- | |||
| [[Python (Programmiersprache)|Python]] || kann mit einem Webserver verbunden oder mit einem eigenständigen Webserver genutzt werden | |||
|- | |||
| [[Ruby (Programmiersprache)|Ruby]] || wird entweder über CGI oder mit mod_ruby ausgeführt, zunehmend auch unter Benutzung von [[Ruby on Rails]] | |||
|- | |||
| [[JavaScript]] || kann z. B. mit [[Node.js]] auch serverseitig genutzt werden | |||
|- | |||
| [[Visual Basic Script|VBScript]] in [[Active Server Pages|ASP]] | |||
|} | |||
==== Client | ==== Client ==== | ||
{| class="wikitable options" | |||
|- | |||
! Sprache !! Beschreibung | |||
|- | |||
| [[JavaScript]] (standardisiert als ''ECMAScript''), wird von allen modernen Browsern unterstützt | |||
[[Dynamisches HTML]] | |- | ||
| [[CoffeeScript]] || wird nach JavaScript transkompiliert | |||
|- | |||
| [[TypeScript]] || wird nach JavaScript transkompiliert | |||
|- | |||
| [[Dynamisches HTML]] || | |||
|} | |||
== Selbständige Skriptsprachen == | |||
Skriptsprachen können auch von anderen Programmen getrennt von ihrem Interpreter ausgeführt werden | Skriptsprachen können auch von anderen Programmen getrennt von ihrem Interpreter ausgeführt werden | ||
* Einige dieser sind für Spezialaufgaben konzipiert, andere sind allgemein verwendbare Sprachen | * Einige dieser sind für Spezialaufgaben konzipiert, andere sind allgemein verwendbare Sprachen | ||
Zeile 122: | Zeile 202: | ||
==== Spezialisierte Sprachen ==== | ==== Spezialisierte Sprachen ==== | ||
{| class="wikitable options" | |||
|- | |||
! Sprache !! Beschreibung | |||
|- | |||
| [[awk]] || Textprozessor (Listengenerator) unter Unix | |||
|- | |||
| GLE || Graphics Layout Engine, Skriptsprache zur Erzeugung von Grafiken und Schaubildern | |||
|} | |||
==== | ==== Allgemein verwendbare Sprachen ==== | ||
{| class="wikitable options" | |||
|- | |||
! Sprache !! Beschreibung | |||
|- | |||
| [[Perl (Programmiersprache)|Perl]] || Programmiersprache mit erweiterten Textprozessorfähigkeiten | |||
|- | |||
| [[PHP]] || ursprünglich für die Entwicklung von Webanwendungen entworfen | |||
|- | |||
| [[Python (Programmiersprache)|Python]] || teilweise objektorientierte Programmiersprache | |||
|- | |||
| [[REBOL]] || Programmiersprache von Carl Sassenrath | |||
|- | |||
| [[REXX]] || Skriptsprache von IBM | |||
|- | |||
| [[Ruby (Programmiersprache)|Ruby]] || objektorientierte Programmiersprache | |||
|- | |||
| [[Tcl]] || universelle Skriptsprache mit erweiterten Textprozessorfähigkeiten und grafischem Toolkit [[Tk (Toolkit)|Tk]] | |||
|} | |||
== Vergleich == | == Vergleich == | ||
Vergleich verschiedener Skriptsprachen | |||
=== Übersicht === | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Sprache !! [[Programmierparadigma|Paradigmen]] !! Erscheinungsjahr !! Entwickler !! [[Typisierung (Informatik)|Typisierung]] !! | ! Sprache !! [[Programmierparadigma|Paradigmen]] !! Erscheinungsjahr !! Entwickler !! [[Typisierung (Informatik)|Typisierung]] !! [[Implementierung]]en !! Lizenz | ||
|- | |- | ||
| [[Groovy]] | | [[Groovy]] | ||
Zeile 197: | Zeile 295: | ||
|} | |} | ||
=== Vergleich syntaktischer Möglichkeiten in Skriptsprachen | === Syntaktische Möglichkeiten === | ||
; Vergleich syntaktischer Möglichkeiten in Skriptsprachen | |||
{| class="wikitable sortable" style="text-align:center;" | {| class="wikitable sortable" style="text-align:center;" | ||
|- | |- | ||
Zeile 231: | Zeile 330: | ||
# [https://www.geeksforgeeks.org/difference-between-programming-scripting-and-markup-languages/ Difference Between Programming, Scripting, and Markup Languages] | # [https://www.geeksforgeeks.org/difference-between-programming-scripting-and-markup-languages/ Difference Between Programming, Scripting, and Markup Languages] | ||
[[Kategorie:Skriptsprache]] | |||
</noinclude> | </noinclude> |
Aktuelle Version vom 2. April 2024, 10:24 Uhr
Skriptsprache - Programmiersprachen, die über einen Interpreter ausgeführt werden
Beschreibung
Skriptsprachen (auch Scriptsprachen) sind Programmiersprachen, die über einen Interpreter ausgeführt werden
- Sie verzichten manchmal auf Sprachelemente, deren Nutzen erst bei der Bearbeitung komplexerer Aufgaben zum Tragen kommt
- So wird etwa in Skriptsprachen auf den Deklarationszwang von Variablen meist verzichtet – vorteilhaft zur schnellen Erstellung von kleinen Programmen (siehe auch Prototyping), bei großen hingegen von Nachteil, etwa wegen der fehlenden Überprüfungsmöglichkeit von Tippfehlern in Variablennamen
Programme, die in Skriptsprachen geschrieben sind, werden auch Skripte oder Scripts genannt, während in der Betriebssystemumgebung von Microsoft meistens die Bezeichnung Makro verwendet wird
- Skripte werden fast ausschließlich in Form von Quelltextdateien ausgeliefert, um so ein einfaches Bearbeiten und Anpassen des Programms zu ermöglichen
Merkmale
- Häufige Merkmale
implizit deklarierte Variablen | dazu gehören auch dynamische Funktionsnamen |
dynamische Typisierung | |
automatische Speicherverwaltung | primär automatische Speicherbereinigung |
dynamische Klassenzugehörigkeit oder prototypenbasierte Vererbung | |
unmittelbare Ausführung | durch Interpretation des Quelltextes ohne getrennte Übersetzungsphase |
Bei einigen Skriptsprachen kann der Programmcode (ebenso wie andere Daten) durch das Programm selbst manipuliert werden; das macht jene Sprachen besonders flexibel
- Anwendungsgebiete
Die Anwendungsgebiete und Eigenschaften konventioneller Programmiersprachen und Skriptsprachen überschneiden sich mittlerweile stark (siehe hierzu den Abschnitt Abgrenzung), weshalb eine strikte Trennung zwischen konventionellen Programmiersprachen und Skriptsprachen nur selten möglich ist
Abgrenzung
Aus architektonischer Sicht werden Skriptsprachen häufig verwendet, um bestehende Komponenten in einem Anwendungsprogramm zu verbinden oder aufzurufen
- Die Komponenten selbst werden in einer komplexeren Programmiersprache entwickelt
- Beispiel dafür ist ein Shellskript, das externe Programme aufruft
- Diese Programme sind im Allgemeinen in verschiedenen Programmiersprachen entwickelt
- Ein anderes Beispiel ist die Sprache BPEL, die verwendet wird, um Webservices zu beschreiben, die in verschiedenen Programmiersprachen entwickelt werden können
Wurden Skriptsprachen anfangs nur für kleinere Automatisierungen verwendet, so werden sie heute auch in Bereichen eingesetzt, die früher den klassischen Programmiersprachen vorbehalten waren
- Durch Verbesserungen in den Interpretern wurde der Geschwindigkeitsunterschied zu statischen Sprachen verringert; zusammen mit dem Fortschritt der Rechenleistung ergibt sich vielfach eine akzeptable Ausführungsgeschwindigkeit, die früher nur mit kompilierten Programmen zu erreichen war
- Darüber hinaus können in einigen der selbständigen Programmiersprachen Variablen zur besseren Fehlerüberprüfung optional deklariert werden
- Mit modernen Skriptsprachen können daher manche Anwendungen, etwa zur Auswertung von Daten, vollständig unter Verzicht auf externe Programme implementiert werden
Kategorien
Kategorie | Beschreibung |
---|---|
Kommandozeileninterpreter | |
Bibliotheken | |
Skriptsprachen in Programme | |
Skriptsprachen im WWW | |
Selbständige Skriptsprachen |
Kommandozeileninterpreter
Manche Skriptsprachen sind von den Kommandozeileninterpretern der Betriebssysteme abgeleitet
- 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 Shellskripte (ausgeführt von einer der Unix-Shells sh, csh …) oder unter DOS und Windows auch Stapelverarbeitungsdateien oder Batch-Skripte (ausgeführt von COMMAND.COM und cmd.exe)
Abzugrenzen sind Kommandozeileninterpreter von interaktiven Sprachen (wie z. B. Lisp, Python, Tcl oder Perl im Debugger), die zum Testen und Debuggen interaktive Programmabschnitte ausführen können, aber nicht so eng im Betriebssystem integriert sind
Option | Beschreibung |
---|---|
Bourne-Shell (sh) | Unix-Bourne-Shell (die klassische Unix-Shell) |
bash | GNU-Ersatz und Erweiterung der sh-Shell |
Kornshell (ksh) | Weiterentwicklung der klassischen sh-Shell |
C-Shell (csh) | BSD Shell (Unix-Versionen aus Berkeley) |
cmd.exe | Kommandointerpreter von Windows ab Windows NT |
PowerShell | Kommandointerpreter u. a. für Windows |
TACL | Kommandointerpreter von Tandem-Systemen |
Digital Command Language (kurz DCL) | Kommandosprache für VMS-Plattformen |
Bibliotheken
- Skriptsprachen, die als Bibliothek verfügbar sind
Sprache | Beschreibung |
---|---|
GNU Guile | GNU Extension Language |
Lua | Skriptsprache zum Einbinden in Programme, oft in Computerspielen zu finden |
AngelScript | Skriptsprache zum Einbinden in Programme, oft in Computerspielen zu finden |
S-Lang | plattformunabhängige Skriptsprache zum Einbinden in Programme |
Sleep | In Java geschriebene Skriptsprache zum Einbinden in Java-Programme |
Squirrel | durch Lua inspirierte Skriptsprache mit C-ähnlicher Syntax |
Tcl | Tool Command Language von J. Ousterhout |
VBScript und JScript | Standardskriptsprachen von Windows |
Windows PowerShell | Microsofts Skriptsprache zum Einbinden in .NET-Programme |
Skriptsprachen in Anwendungen
Skriptsprachen können auch in Anwendungsprogrammen zur Automatisierung von Aufgaben oder durch Erweiterung der Fähigkeiten des Programms dienen
- Teilweise wird auch ein Teil der Funktionalität des Programms selbst in dieser Skriptsprache realisiert
- Somit können Anwender die Funktionalität eines solchen Programms schnell mit neuen Funktionen erweitern oder bestehende abändern, ohne das Programm selbst umzuschreiben
- Diese Erweiterungen können selbst so weitreichend sein, dass das Programm völlig neue Aufgaben erledigt, die mit dem vorherigen Programm – aus Anwendersicht – nichts mehr gemeinsam haben
- So wurden aus dem Texteditor Emacs auch ein E-Mail-Programm (Wanderlust)
Im Gegensatz zu Plug-ins sind Skripte bzw. Makros wesentlich flexibler und werden vor allem für kleine Automatisierungen angewendet
Sprache | Beschreibung |
---|---|
AppleScript | Skriptsprache von macOS und Mac OS Classic |
AutoHotkey | eine Skriptsprache für Windows und Windows-Programme, kompilierbar |
AutoIt | eine Alternative zum Windows Script Host |
Emacs Lisp | Skriptsprache des Emacs-Editors |
Google Apps Script | zur programmierten Automatisierung von Google Workspace Anwendungen |
LPC | C ähnliche Sprache für MUDs |
Python | verschiedene, vor allem Open Source, Programme (z. B. LibreOffice, Blender und GIMP) lassen sich damit skripten |
OpenOffice-Basic | bei OpenOffice enthaltene Basic-Makrosprache, ähnlich VBA bei MS-Office |
QuakeC | Skriptsprache des Computerspiels Quake |
REXX | insbesondere unter z/VM und OS/2 als Makrosprache eingesetzt (z. B. im „Erweiterten Editor“ EPM) |
Tcl | im AOLserver eingesetzte Makrosprache |
UnrealScript | Skriptsprache der Unreal Engine |
Vim-Skriptsprache | |
VBA (Visual Basic for Applications) | Skriptsprache für Microsoft-Produkte; ist auch kompilierbar |
VBScript | Standardskriptsprache von Windows, ab Windows 98 |
JScript | Standardskriptsprache von Windows, ab Internet Explorer 3.0 (Windows 3.1, NT 3.5) |
Skriptsprachen im WWW
Für das WWW werden Skriptsprachen häufig auf den Servern verwendet, um dynamische Seiten oder ganze Webanwendungen zu erstellen
- Dies geschieht zum Beispiel bei den Wikis, bei Foren, Gästebüchern und bei Onlinegeschäften
Des Weiteren werden clientseitige Skriptsprachen auch in den Webseiten selbst eingebunden und in den Browsern ausgeführt
Server
Sprache | Beschreibung |
---|---|
Perl | erste Skriptsprache, die weite Verbreitung in Webservern fand |
PHP | die verbreitetste Skriptsprache auf Webservern; wurde direkt für diese Aufgabe konzipiert |
Python | kann mit einem Webserver verbunden oder mit einem eigenständigen Webserver genutzt werden |
Ruby | wird entweder über CGI oder mit mod_ruby ausgeführt, zunehmend auch unter Benutzung von Ruby on Rails |
JavaScript | kann z. B. mit Node.js auch serverseitig genutzt werden |
VBScript in ASP |
Client
Sprache | Beschreibung |
---|---|
JavaScript (standardisiert als ECMAScript), wird von allen modernen Browsern unterstützt | |
CoffeeScript | wird nach JavaScript transkompiliert |
TypeScript | wird nach JavaScript transkompiliert |
Dynamisches HTML |
Selbständige Skriptsprachen
Skriptsprachen können auch von anderen Programmen getrennt von ihrem Interpreter ausgeführt werden
- Einige dieser sind für Spezialaufgaben konzipiert, andere sind allgemein verwendbare Sprachen
- Diese Sprachen haben die für umfangreiche Programmprojekte notwendigen Konzepte wie Namensräume und Kapselung und werden deshalb nicht selten für größere Anwendungen verwendet
Spezialisierte Sprachen
Sprache | Beschreibung |
---|---|
awk | Textprozessor (Listengenerator) unter Unix |
GLE | Graphics Layout Engine, Skriptsprache zur Erzeugung von Grafiken und Schaubildern |
Allgemein verwendbare Sprachen
Sprache | Beschreibung |
---|---|
Perl | Programmiersprache mit erweiterten Textprozessorfähigkeiten |
PHP | ursprünglich für die Entwicklung von Webanwendungen entworfen |
Python | teilweise objektorientierte Programmiersprache |
REBOL | Programmiersprache von Carl Sassenrath |
REXX | Skriptsprache von IBM |
Ruby | objektorientierte Programmiersprache |
Tcl | universelle Skriptsprache mit erweiterten Textprozessorfähigkeiten und grafischem Toolkit Tk |
Vergleich
Vergleich verschiedener Skriptsprachen
Übersicht
Syntaktische Möglichkeiten
- Vergleich syntaktischer Möglichkeiten in Skriptsprachen
Sprache | Annotationen | Anonyme Funktion | Pattern Matching | Benannte Parameter | Optionale Parameter | Currying | Varargs |
---|---|---|---|---|---|---|---|
Groovy | x | x | - | (x) | x | x | x |
JavaScript | - | x | - | x | x | x | x |
Python | x | x | - | x | x | (x) | x |
Scala | x | x | x | x | x | x | x |
PHP | - | x | - | x | x | (x) | x |
Ruby | - | x | - | (x) | x | x | x |
Tcl | - | x | x | (x) | x | (x) | x |
Anhang
Siehe auch
Links
Weblinks
- https://de.wikipedia.org/wiki/Skriptsprache
- Overview of Scripting Languages (SAP Help Portal)
- Difference Between Programming, Scripting, and Markup Languages