Bootstrapping

Der Begriff Bootstrapping wird u.a. im Zusammenhang mit dem Compilerbau verwendet. In der Unix-Programmierumgebung sind Compiler gewöhnlich in der Programmiersprache C geschrieben. Selbst C-Compiler sind in C geschrieben. Die Verwendung der Möglichkeiten, die eine Sprache bietet, um sich selbst zu übersetzen, ist das wesentliche des Bootstrapping. Betrachtet wird die Verwendung des Bootstrapping, um Compiler zu erzeugen und diese nur durch Änderung des jeweiligen Back-Ends von einer Maschine auf eine andere zu bringen.

Grundlage T-Diagramm
Grundlage T-Diagramm lexikon, kompendium, computer, it, elektronik

Für Bootstrapping-Zwecke ist ein Compiler durch drei Sprachen charakterisiert: Die Quellsprache S, die er übersetzt, die Zielsprache T, für die er Code generiert, und die Implementierungssprache I, in der er geschrieben ist. Diese drei Sprachen werden analog der Abbildung dargestellt, welche wegen ihrer Form T-Diagramm genannt wird. Innerhalb des folgenden Textes wird das T-Diagramm mit S(I)T abgekürzt. Die drei Sprachen können völlig verschieden sein. Beispielsweise könnte ein Compiler auf einer Maschine laufen und Zielcode für eine andere Maschine erzeugen. So ein Compiler wird oftmals Cross-Compiler genannt.

Das Übersetzen eines Compilers
Das Übersetzen eines Compilers lexikon, kompendium, computer, it, elektronik

Beispielhaft sei es die Aufgabe einen Cross-Compiler für eine neue Sprache L in der Implementierungssprache S zu schreiben, um Code für Maschine N zu generieren; dies bedeutet, es wird L(S)N erzeugt. Wenn ein bestehender Compiler für S auf einer Maschine M läuft und Code für M generiert, ist er durch S(M)M charakterisiert. Wenn L(S)N von S(M)M compiliert wird, erhält man einen Compiler L(M)N, der ein Compiler von L zu N ist und der auf Maschine M läuft. Dieser Prozess ist in der Abbildung durch Aneinanderfügen der T-Diagramme für diese Compiler dargestellt.

Zu beachten beim Zusammenfügen von T-Diagrammen ist, dass die Implementierungssprache S des Compilers L(S)N die gleiche sein muss wie die Quellsprache des bestehenden Compilers S(M)M und dass die Zielsprache M des bestehenden Compilers die gleich sei muss wie Implementierungssprache der übersetzten Form L(M)N. Ein Trio von T-Diagrammen kann als eine Gleichung verstanden werden:

L(S)N + S(M)M = L(M)N

Inhalt teilen

Partner