> On Jun 19, 2026, at 12:40 PM, J. David Bryan via cctalk
> <[email protected]> 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