"Bootstrapping" compiler code is quite common. So, it's not unusual to
find FORTRAN source code in FORTRAN compilers, etc. I doubt that many
compilers are written entirely in assembly nowadays.
For example, back in the late 70s, I put together a business BASIC
compiler for the 8080/8085. Theoretically, it was coded in assembly,
but it wasn't 8085 assembly. The technique was to code in a
platform-independent assembly language whose data types and operations
match the language elements that you're working with--words, numbers,
tokens, etc. Then one codes a small emulator in whatever is handy for
the target system to get code generation shaken out. Finally, one
implements the final compiler by taking the specialized machine and
converting them via macros to native assembly.
We coded our emulator and macro processor in PL/M. They were very
simple and let us get on with the job of writing a compiler.
When it came time to convert to x86 code, it was a walk in the park, as
very little of the compiler needed recoding. The code was subsequently
moved to Xenix and was in production as late as 5 years ago, even though
the original company and hardware had been gone for decades.
ISTR that Ryan-McFarland did their implementations the same way back in
the day. I still have the original "printed-on-a-Teletype Model 40
printer" design document that I did.
--Chuck