Was ist eine Skriptsprache (2.1)?

...komplette Frage anzeigen

2 Antworten

Das ist schwer exakt zu sagen und der Versuch lohnt eigentlich nicht. "Skriptsprache" ist ein verwaschener und nur umständlich definierbarer Begriff, den zu verwenden wenig Information gibt.

Gern werden "Skriptsprachen" rasch als "Interpretersprachen" erklärt, die "nicht compiliert werden". Das ergibt genau betrachtet keinen Sinn, denn das Interpretiert- oder Compiliertwerden ist gar keine Eigenschaft der Sprache, sondern eine Sache ihrer technischen Umsetzung, und die kann bei ein und derselben Sprache ganz verschieden sein.

Zu vielen Sprachen gibt es sowohl Interpreter als auch Compiler. Man nimmt die Version, die gerade am praktischsten ist.

Z.B. Lisp...



Programme in Lisp können interpretiert oder von einem Compiler
in effizienten Code übersetzt werden. Typische Compiler sind
Batch-Compiler oder inkrementelle Compiler. Inkrementelle Compiler
können einzelne Ausdrücke übersetzen. Batch-Compiler übersetzen einzelne Lisp-Dateien oder ganze Lisp-Programme. Compiler übersetzen entweder in einen Bytecode für eine virtuelle Maschine oder in Maschinencode für einen Prozessor.

https://de.wikipedia.org/wiki/Lisp

...und OCaml

OCaml's toolset includes an interactive top-level interpreter, a bytecode compiler, a reversible debugger, a package manager (OPAM), and an optimizing native code compiler.

https://en.wikipedia.org/wiki/OCaml

Üblich sind auch Kombinationen von beidem. Manche Interpreter enthalten selbst einen Compiler, mit dem eine oder mehrere Stufen von Zwischencode erzeugt werden, bevor die runtime engine diesen ausführt.

So z.B. bei Perl...

Perl has always had a compiler: your source is compiled into an
internal form (a parse tree) which is then optimized before being
run.

http://perldoc.perl.org/5.8.9/perlcompile.html

Auch bei Java wird zunächst vom Compiler (javac) aus dem Quellcode (*.java) ein Zwischencode (*.class) erzeugt und dieser dann dem Interpreter (java) übergeben, der wiederum einen weiteren Compiler (JIT) dazu verwendet, den Zwischencode noch für die Zielmaschine zu optimieren, bevor er ausgeführt wird.

Der Wikipedia-Artikel versucht, das Thema ausführlich und differenziert zu erklären, und man sieht, daß dazu weit ausgeholt werden muß.

https://de.wikipedia.org/wiki/Skriptsprache

Hier ist eine gute Diskussion zu dem Thema, ob die Sprache Python nun interpretiert oder compiliert wird oder beides

https://stackoverflow.com/questions/6889747/is-python-interpreted-or-compiled-or-both

Gruß

Als Scriptsprachen bezeichnet man Programmiersprachen, die auszuführen man einen Interpreter hat (aber keinen Compiler).

Typische Skriptsprachen sind extrem einfache Sprachen.

pixelino 03.07.2017, 10:18

Wie zum Beispiel Python

0
grtgrt 03.07.2017, 10:47
@pixelino

Ja, auch Python ist eine Skriptsprache - aber eben keine besonders typische (schließlich hat sie ja nahezu so komplexe Struktur wie so manch compilierte Sprache, allen voran C).

Besonders typische Skriptsprachen sind die Unix Shells und die Windows Command Line Notation, aber natürlich auch die Windows Powershell, obgleich die Powershell zu gebrauchen schon einen für Skriptsprachen völlig untypisch hohen Lernaufwand erfordert.

0
grtgrt 03.07.2017, 10:59
@pixelino

Skriptsprachen (wie etwa Python), mit denen man größere Programme schreibt, aber auch besonders kryptisch anmutende Skriptsprachen (wie etwa Perl) sind sämtlich als Verlegenheitslösung einzustufen. Unternehmenskritische Anwendungen sollte man damit auf keinen Fall implementieren.

0
Franz1957 03.07.2017, 11:37
@grtgrt

Ich versuche mir manchmal vorzustellen, wie lange man heute suchen muß, um einen typischen Indianer zu finden... :-)

0
Franz1957 03.07.2017, 11:44
@grtgrt

Eine Sprache, die man nicht gelernt hat, kann natürlich kryptisch anmuten. Das ist IMO besser, als wenn man sie zu verstehen meint und damit falsch liegt.

0
grtgrt 03.07.2017, 13:10
@Franz1957

Wichtig ist halt, dass Software auch gut wartbar ist. In Perl geschriebene Scripts sind alles andere als gut wartbar.

Eine der wichtigsten Voraussetzungen für gute Wartbarkeit ist auf jeden Fall, dass so wenig wie möglich Programmierer die verwendete Sprache als allzu kryptisch empfinden. 

0

Was möchtest Du wissen?