From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,99ab4bb580fc34cd X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Q: access to subprogram Date: 1996/07/07 Message-ID: #1/1 X-Deja-AN: 167542478 references: <4rb9dp$qe6@news1.delphi.com> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-07-07T00:00:00+00:00 List-Id: Ronald Cole said (commenting on my claim that GCC did not have multiple backends) Not true. A single instance of GCC doesn't support multiple machine targets (other than the -m options for some processor families). GCC has to be recompiled to support different machine descriptions (that's what the -b and -V options of gcc are for). I consider this as having multiple backends. That's not what I meant, yes, of course there are multiple backends at the object level, but not at the source level. If you look back in this thread, you will see that this is the critical issue. If you have a technology where each backend is a completely different source program, separately written (such technoologies are pretty common, most Ada 83 compiler technologies were like this), then the point is that the impact of anything that affects the backend is greatly multiplied, and that is why during the design, we were very cautious about changes that affect the backend. Most Ada technologies have a single front end for all targets (though Ronald Cole would presumably call these multiple front ends too, because there are certanly separate object versions), but again the important thing is that there is only one source program. Thus changes to the front end are potentially less troublesome, since the change only has to be made once. But for technologies like GCC, where there is only one source program for both front end and backend (though in both cases multiple executables), this distinction is not significant.