11.09.2013 Aufrufe

Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...

Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...

Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

28 2.3 Bootstrapping<br />

Pascal → Pcode<br />

Pascal<br />

Pascal → Pcode<br />

Pcode<br />

Abbildung 10: Distribution des PCode-Compilers<br />

Pcode<br />

X<br />

Abbildung 11: PCode-Interpreter<br />

dessen Hilfe lässt sich sofort ein funktionsfähiger Pascal-Compiler für die Zielmaschine<br />

X herstellen, der allerdings auch wiederum PCode erzeugt, der dann ebenfalls<br />

durch den Interpreter behandelt werden muss. Die Langsamkeit der Interpretation<br />

hindert hier also in zweifacher Hinsicht. Da der Pascal-Compiler jedoch selbst in Pascal<br />

geschrieben ist, sollte es kein Problem sein, anschliessend die Compilerquelle so zu<br />

modifizieren, dass direkt Code für die Zielmaschine erzeugt wird.<br />

Eine erste Compilation dieses Compilers, wie in Abb. 12 gezeigt, liefert einen funktionsfähigen<br />

Pascal-Compiler für die Zielmaschine, der selbst allerdings noch einen<br />

PCode-Interpreter braucht, um laufen zu können.<br />

Eine Selbstcompilation (Abb. 13) behebt diesen Mangel, es existiert nun ein ” nativer“<br />

Pascal-Compiler für die Zielmaschine.<br />

Zur Sicherheit unternimmt man noch eine zweite Selbstcompilation des Compilers<br />

(Abb. 14); im Ideallfall sollte dies ein Programm erzeugen, das (bis auf evtl. Zeitmarken)<br />

binär identisch zum vorigen Compiler ist. Abweichungen davon bedürfen der<br />

Inspektion und Erklärung.<br />

Auf die gleiche Weise können nun auch Fehler im Compiler behoben, neue Optimierungsmassnahmen<br />

eingeführt oder die Programmiersprache erweitert werden: Die<br />

Modifikationen werden in der Compilerquelle vorgenommen, durch eine Selbstcompilation<br />

entsteht dann ein neuer Compiler.<br />

Damit ist immer noch nicht geklärt, wie man überhaupt zum ersten Pascal-Compiler<br />

kommen kann. Dazu ist zu bemerken, dass über viele Jahre hinweg ” ernsthafte“ Programme,<br />

darunter natürlich auch Compiler, im Assembler geschrieben wurden. Das<br />

kogrund.pdf

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!