Ich studiere Bootstrapping von Red Dragon Book Compilern und fand das T-Diagramm für Cross Compiler ziemlich verwirrend. Ich kann nicht verstehen, was unter "Compiler1 bis Compiler2 ausführen" zu verstehen ist. Kann jemand eine bessere Erklärung, Analogie oder ein Beispiel für einen realen Compiler liefern?
Zuerst eine Notation. Mit meine ich einen Compiler für Sprache , der in Sprache geschrieben ist und die Ausgabesprache / Maschinencode . Dies ist ein Grabstein oder T-Diagramme .
Kompilieren eines Compilers
Angenommen, wir haben einen Cross-Compiler für eine neue Sprache L in der Implementierungssprache S, die Code für Maschine N generiert.
Angenommen, wir haben auch einen vorhandenen S-Compiler, der auf Maschine M ausgeführt wird und Code für Maschine M implementiert:
Führen Sie LSN über SMM aus, um LMN zu erstellen
Compilerkonstruktion