Robert Dewar wrote:
No trick here, Ada is a complex language and even a "simple" Ada compiler that you envision is a huge amount of work, but if you feel it is practical, by all means go ahead and create such a beast!
By the way, early on we thought quite a bit about how to bootstrap from C (there are other more practical ways, e.g. use a simulator for MIPS or some other machine, or generate junk C from the back end or ...) However, we quickly found that the cross-compilation capabilities of gcc meant that in practice people could succeed in creating ports for all kinds of strange machines, and it was rapidly apparent that the amount of effort to "solve" this problem was simply not worth it. We do make sure to maintain compatibility with relatively ancient versions of GNAT for bootstrapping purposes, which means that in practice it is pretty easy to find a version of GNAT to start from on most machines.