On Jun 19, 2026, at 12:40 PM, J. David Bryan via
cctalk <cctalk(a)classiccmp.org> wrote:
On Friday, June 19, 2026 at 8:53, Bill Gunshannon via cctalk wrote:
Well, maybe my memory is getting flawed (it was
25 years ago and I am
75 now) but we started using GNAT right from the very beginning at the
University I worked at.
My first exposure was with GNAT 3.04 from June 1996. I've been using later
versions off-and-on ever since. No version that I've used has generated C
code. Indeed, I'm not sure how the "GNU" part of the "GNU NYU Ada
Translator" would fit in. What part of gcc generates C code for a front
end?
No part, and I don't recall that any ever did. There are a number of internal
representations inside GCC, the specific set and nature of which has changed over time.
There's a tree representation, and something called "GIMPLE" (don't
remember what that means) and later on there is "RTL" which is what the back
ends consume. Those intermediate forms I think are meant to be generic representations of
the program, through various transformations. The assorted optimization schemes act on
these representations. I suspect part of the reason for multiple representations is that
some optimizations are more easly done on one of them and others on a different one.
There's a lot of detail about GCC in its internals manual, which is impressively
comprehensive. I've only studied small parts of it (I've done back end work but
nothing in other parts of the compiler).
All the front ends produce as output the first of the internal representations; all the
back ends consume as input the last of them. Everything in between is (pretty much
anyway) both language and target machine independent.
paul