Compiler

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Ein Compiler dient dazu, eine Quellsprache in eine Zielsprache zu übersetzen. In den meisten Fällen wird Quelltext einer höheren Programmiersprache in Maschinensprache übersetzt. Ein kompiliertes Computerprogramm kann nicht mehr ohne Weiteres manipuliert und bearbeitet werden.

Es gibt auch Decompiler, die aus einem Kompilat wieder Quelltext gewinnen sollen, allerdings ist deren Erfolg und die Qualität des rückgewonnenen Codes stark von den Informationen abhängig, die noch im Kompilat stecken. Zum Beispiel gehen beim Kompilieren oft die Bezeichner "verloren" und der Dekompiler muss sich dann irgendwelche eigenen Namen "ausdenken". Außerdem kann die Lizenz einer zu bearbeitenden Software verbieten, sie zu dekompilieren. So ein Verbot kann unter bestimmten Umständen allerdings auch unwirksam sein. Das deutsche Urheberrecht kennt beispielsweise Ausnahmen in §69e, wenn es um die Interoperabilität mit anderen Programmen geht.

BASIC Compiler[Bearbeiten]

Das im C64 eingebaute BASIC wird interpretiert (Interpreter). Es sind aber auch verschiedene Compiler verfügbar. Durch das Kompilieren wird ein BASIC-Programm in der Regel schneller, unter Umständen benötigt es dann aber auch mehr Speicherplatz. Das nach einer gewissen Menge von String-Operationen auftretende Problem der Garbage-Collection wird nach bisherigen Erkenntnissen nur durch den Basic-Boss wirklich effektiv gelöst. Es können also durchaus auch im Kompilat früher oder später ähnlich gravierende Verzögerungen auftreten wie im BASIC-Sourcecode.

Compiler Compilierbare Dialekte Besonderheiten
Basic 64 Compiler
Basic 64
Basic 128 Compiler
Basic 128
Skyles Blitz
Blitz
Basic V2.0, ? pro Unterstützt mehrere Laufwerke.
pro Erzeugt ein Protokoll-File "Z/...", das nach dem Laden und LIST-Befehl aufschlüsselt, welche neuen Pseudozeilennummern welchen alten Zeilennummern entsprechen, hilfreich für Fehlersuche, falls trotz erfolgreichem Kompilieren das Kompilat abstürzt.
pro Kompilat ist relativ klein.
pro Es existiert eine Anleitung, die zwar recht oberflächlich ist, aber die Bedienung ist sehr unkompliziert.
contra Das Kompilat liegt immer am BASIC-Start und es wird immer eine Basic-SYS-Startzeile erzeugt, ungünstig für die Einbindung des Kompilats in ein Assembler-Programm.
Speedcompiler
Speedcompiler
Basic V2.0, ?
Basic-Boss
Basic-Boss
Basic V2.0, ? pro Es existiert eine umfangreiche und detaillierte Anleitung.
pro Vielfältige Befehle bieten enorm viele Einsatzmöglichkeiten, unter anderem flexible Speicherverwaltung, günstig für die Einbindung des Kompilats in ein Assembler-Programm.
pro Beschleunigte Garbage-Collection.
neutral Bedingt durch die Komplexität müssen einige Restriktionen beim Erstellen des Ursprungscodes beachtet werden.
contra Erzeugt ein relativ großes Kompilat.

contra Sollte das Kompilieren ohne Fehlermeldung gelingen und das Kompilat dennoch abstürzen, lässt sich nicht ohne Weiteres zurückverfolgen, welche Zeile des Ursprungscodes Probleme bereitet.

Austro Speed
Austro Speed
Basic V2.0, ?
Simon's
Austro Speed
  • Basic V2.0
  • Simons' Basic
Laser
Laser Compiler
  • Basic V2.0
  • Laser Basic
pro Ein Kompilat mit Laser-BASIC-Befehlen ist ohne Laden der Erweiterung lauffähig.
pro Kompiliert trotz 3-Pass recht flott.

contra Kaum Optimierungsmöglichkeiten; Integer-Zahlen können selten ohne Quellcodeänderung aktiviert werden.
contra LOAD aus dem Programm ist nicht möglich.
contra Mäßige Ausführungsgeschwindigkeit des Kompilats.

Diabolo
Diabolo
Basic V2.0 (nur Integer-Arithmetik)
Petspeed 128
Petspeed
Basic V7.0

Weblinks[Bearbeiten]

WP-W11.png Wikipedia: Compiler


Auswahl ursprünglich in BASIC geschriebener kompilierter Programme