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.
$LSN=$
Suppose we also have an existing S compiler running on machine M implementing code for machine M:
$SMM=$
Run LSN through SMM to produce LMN
Compiler Construction
$LMN = LSN + SMM$