I'm studying Bootstrapping from Red Dragon Book Compilers and found the T diagram for cross compiler pretty confusing. I can't understand what is meant by "Run compiler1 through compiler2". Can anyone provide some better explanation, analogy or an example to relate with some real world compiler?
Some notation first. By $LSN=$ I mean a compiler for language $L$ written in language $S$ that produces output language/machine code $N$. This is a tombstone or T-diagrams.
Compiling a Compiler
Suppose we have cross-compiler for a new language L in implementation language S generating code for machine N.
Suppose we also have an existing S compiler running on machine M implementing code for machine M:
Run LSN through SMM to produce LMN
$LMN = LSN + SMM$