When you write a compiler, you eventually have to write it twice. Once in a pre-existing language, then again in the language it compiles.
Just say no to bootstrapping.
At university the by far coolest and most fun course was compiler construction. We had to write something which would compile a small subset of Java (Javalette) into the Java Virtual Machine instruction set.
I wrote my compiler in Haskell because it seemed that it’d be much less hassle compared to do it in a object oriented or procedual language.
It ain’t pretty but it’s honest work: https://github.com/jeena/CC/blob/master/Compiler.hs
The programmer who made the OS
Actually compilers are more complex than operative systems, and incredibly they are built using compilers.
Compilers are built using compilers?
Yup, C is written in C. You bootstrap using a compiler written in another language until your language is complete enough to write its own compiler.