User Tools

Site Tools


ric

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
ric [2026/05/12 20:07] riccardoric [2026/05/12 20:15] (current) riccardo
Line 66: Line 66:
   * [[Deklarationen]] – reservieren Speicherplatz für [[Variablen]] oder [[Datenstrukturen]] unter einem fast frei wählbaren Namen. Über diesen Namen können sie später angesprochen werden.   * [[Deklarationen]] – reservieren Speicherplatz für [[Variablen]] oder [[Datenstrukturen]] unter einem fast frei wählbaren Namen. Über diesen Namen können sie später angesprochen werden.
   * Aufrufe „programm-externer“ Unterroutinen/Module wie Systemfunktionen (z. B. „Read“) oder funktionaler Module, auch aus anderen Programmiersprachen.   * Aufrufe „programm-externer“ Unterroutinen/Module wie Systemfunktionen (z. B. „Read“) oder funktionaler Module, auch aus anderen Programmiersprachen.
 +
 +
 +=====Übersetzer=====
 +
 +→ Hauptartikel: [[Compiler]]
 +
 +Um ein in einer bestimmten Programmiersprache erstelltes Programm ausführen zu können, muss anstatt dessen Quellcode eine äquivalente Folge von Maschinenbefehlen ausgeführt werden. Das ist notwendig, da der [[Quellcode]] aus Zeichenfolgen besteht (z. B. „A = B + 100 * C“), die der Prozessor nicht „versteht“.
 +
 +Die in der Geschichte der Computertechnik und der [[Softwaretechnologie]] eingetretenen Entwicklungssprünge brachten auch unterschiedliche Werkzeuge zur Erzeugung von Maschinencode, ggf. über mehrere Stufen, mit sich. Diese werden beispielsweise als [[Compiler]], [[Interpreter]], [[Precompiler]], [[Linker]] etc. bezeichnet.
 +
 +In Bezug auf die Art und den Zeitpunkt, wie der Computer zu einem äquivalenten Maschinencode kommt, können zwei Prinzipien unterschieden werden:
 +
 +  * Wird ein Programmtext als Ganzes „übersetzt“, also aus dem Quelltext ein Maschinenprogramm erstellt, so spricht man in Bezug auf den Übersetzungsmechanismus von einem Compiler. Der Compiler selbst ist ein Programm, das als Dateneingabe den Programm-Quellcode liest und als Datenausgabe den Maschinencode (z. B. Objectcode, EXE-Datei, „executable“) oder einen Zwischencode liefert.
 +  * Wenn abhängig vom Programmtext während der Ausführung entsprechende Maschinencodeblöcke ausgeführt werden, spricht man von einer interpretierten Sprache. Das Programm wird in einer [[Laufzeitumgebung]] (z. B. veraltete [[JVM]]) interpretiert und je nach Programmbefehl ein entsprechender Maschinenbefehlblock ausgeführt.
 +
 +Daneben existieren verschiedene Mischvarianten:
 +
 +  * Bei der „Just-in-Time-Kompilierung“ wird der Programmtext direkt vor jedem Programmlauf neu übersetzt; ggf. werden erst während des (interpretierten) Programmlaufs einzelne Programmabschnitte kompiliert.
 +  * Zum Teil erzeugen Compiler einen noch nicht ausführbaren Programmcode, der von nachfolgenden [[Systemprogrammen]] zu ausführbarem Maschinencode umgeformt wird. Hier sind die Konzepte „plattformunabhängiger [[Zwischencode]]“ (z. B. im Rahmen der [[Software-Verteilung]]) und „plattformgebundener [[Objektcode]]“ (wird zusammen mit weiteren Modulen zu ausführbarem Code, z. T. [[Lademodul]] genannt, zusammengebunden) zu unterscheiden.
 +  * Mit [[Precompilern]] können spezielle, in der Programmiersprache selbst nicht vorgesehene Syntax-Konstrukte (zum Beispiel [[Entscheidungstabellen]]) bearbeitet und, vor-übersetzt in die gewählte Programmiersprache, im Quellcode eingefügt werden.
 +
 +Zur Steuerung des Übersetzens kann der Quelltext neben den Anweisungen der Programmiersprache zusätzliche spezielle [[Compiler-Anweisungen]] enthalten. Komplexe Übersetzungsvorgänge werden bei Anwendung bestimmter Programmiersprachen / [[Entwicklungsumgebungen]] durch einen [[Projekterstellungsprozess]] und die darin gesetzten [[Parameter]] gesteuert.
ric.txt · Last modified: by riccardo