Thoughts on Bootstrapping GHC (2018)
joachim-breitner.de
joachim-breitner.de
The interpreter could target a much simpler version of Haskell and it could be slow as hell, as it would be used only once.
Of course, you could compile to a higher-level language, for instance directly to C. But that's usually still a complication that only gives you performance. And performance is something you probably don't need during bootstrapping.
It's a really interesting read:
https://crypto.stanford.edu/~blynn/compiler/
I learned about Mogensen-Scott encoding and some tricks for efficiently compiling to SKI from those articles.