Bootstrapping is used to create compilers and to move them from one machine to another by modifying the back end.
A compiler is characterized by three languages
- Source Language (S)
- Target Language (T)
- Implementation Language (I)
Porting the compiler to the new host computer now only requires that the back end of the source code be rewritten to generate code for the new machine. This is then compiled using the old compiler to produce a cross compiler, and the compiler is again recompiled by the cross compiler to produce a working version for the new machine.