Programm

Ein Programm kann in einer Vielzahl von Sprachen formuliert sein:

Teilweise kann ein Programm automatisch (von einem Konvertierprogramm) von einer Sprache in eine andere überführt werden. Beispiele hierfür sind zuvorderst natürlich Compiler, die einen Quelltext in Maschinensprache übersetzen. Es gibt aber auch Programme wie f2c (konvertiert einen FORTRAN 77-Quelltext nach C) oder p2c (konvertiert Pascal nach C).

Bei der Ausführung eines Programms gibt es zwei grundsätzliche Möglichkeiten:

Die Programme einiger Programmiersprachen werden (zumindest fast) ausschließlich von einem Compiler in Maschinensprache übersetzt (FORTRAN, C, C++, Pascal) und als Maschinenprogramme ausgeführt.

Programme einiger anderer Sprachen dagegen werden fast ausschließlich interpretiert (Shellskripte, die meisten BASIC-Dialekte).

Für einige Programmiersprachen sind sowohl Interpreter als auch Compiler verfügbar (beispielsweise einige BASIC-Versionen).

Dazwischen gibt es auch noch eine Mischform. Dabei wird das Programm aus dem Quelltext von einem Compiler in sogenannten Pseudocode (p-Code) übersetzt. Dieser Pseudocode ist einer Maschinensprache ähnlich, dafür ist aber tatsächlich kein Prozessor verfügbar. Stattdessen wird dieser Pseudocode auf einer realen Maschine wiederum von einem Interpreter ausgeführt. Dies wird bei der Sprache Java dazu genutzt, Programme unabhängig von dem verwendeten Zielsystem zu machen: Der Ersteller eines Programms übersetzt seinen Quelltext in den Pseudocode (ohne wissen zu müssen, auf welchem konkreten System das Programm laufen wird), und gibt das Programm in dieser Form an den Anwender weiter. Der Anwender benötigt auf seinen System einen Interpreter für den Pseudocode (dieser ist Teil der run time-Umgebung von Java, und ist abhängig von der Maschine, aber unabhängig vom konkreten Programm).

Eine andere Mischform wird von der Sprache Perl benutzt: Das Programm wird im Quelltext erstellt und gegebenenfalls an die Endanwender verteilt. Ähnlich wie bei einem wirklich interpretierten Programm wird zum Ausführen ein Hilfsprogramm benötigt. Dieses interpretiert aber nicht Anweisung für Anweisung während das gewünschte Programm ausgeführt wird, sondern übersetzt erst alle Anweisungen in Maschinencode, und startet diesen dann.

Noch eine andere Variante wird von VisualBASIC umgesetzt: Das erstellte Programm wird (in kompakter Form, beispielsweise mit verkürzten Variablennamen und ohne Kommentare) im Anschluß an einen kompletten Interpreter abgespeichert, und kann in dieser Form als ausführbares Programm verteilt werden. Die so erstellten Programme sind dabei größer als bei nur interpretierte Sprachen, weil in jedem erstellten Programm ein kompletter Interpreter enthalten ist.

Einige grundsätzliche Eigenschaften der möglichen Varianten im Überblick:

  Compiler Interpreter p-Code Kompilieren bei Start Interpreter enthalten
Beispiel C, C++, Fortran, Pascal, BASIC, Shellskripte, LISP Java Perl VisualBASIC
lauffähig auf verschiedenen Systemen nein ja ja ja nein
effiziente (schnelle) Programme ja nein nein ja nein
ohne weitere Programme lauffähig ja nein nein nein ja
Quelltext vom Anwender sichtbar/änderbar nein ja nein ja nein

Dazu folgende Anmerkungen:



Unterabschnitte
AnyWare@Wachtler.de