Sto studiando Bootstrapping da Red Dragon Book Compilers e ho trovato abbastanza confuso il diagramma a T per il compilatore incrociato. Non riesco a capire cosa si intende per "Esegui il compilatore1 attraverso il compilatore2". Qualcuno può fornire qualche spiegazione, analogia o un esempio migliore da mettere in relazione con un compilatore del mondo reale?
Prima una notazione. Con intendo un compilatore per il linguaggio scritto in linguaggio che produce codice della lingua di uscita / macchina . Questa è una lapide o T-diagrammi .
Compilare un compilatore
Supponiamo di avere un compilatore incrociato per una nuova lingua L nella lingua di implementazione S che genera codice per la macchina N.
Supponiamo di avere anche un compilatore S esistente in esecuzione sul codice di implementazione della macchina M per la macchina M:
Esegui LSN tramite SMM per produrre LMN
Costruzione del compilatore