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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ffce418d7a49585f X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-10-04 09:12:34 PST Path: bga.com!news.sprintlink.net!howland.reston.ans.net!newsserver.jvnc.net!netnews.summit.novell.com!netnews.summit.novell.com!not-for-mail From: jls@summit.novell.com (-mlc-+Schilling J.) Newsgroups: comp.lang.ada Subject: Re: C++ bashing (was Re: Vendor bashing? Sort of.) Date: 4 Oct 1994 12:03:23 -0400 Organization: Novell, Summit Message-ID: <36rucbINN4gr@marble.summit.novell.com> References: <35nlhb$6u0@gnat.cs.nyu.edu> <85BA331C6A0@annwfn.com> NNTP-Posting-Host: marble.summit.novell.com Date: 1994-10-04T12:03:23-04:00 List-Id: >>In <35nlhb$6u0@gnat.cs.nyu.edu> dewar@cs.nyu.edu Robert Dewar writes: >> >>I would not quite put C-Front in the same category as GNAT. The big difference >>is whether you are generating source code as an intermediate step. The >>word preprocessor is normally reserved for translator systems that do >>generate intermediate source. If cfront had only done syntax and semantic checking for C++-only constructs, and passed C constructs on to the C compiler for checking, then it could rightfully be called a preprocessor. But in fact cfront does full checking for the entire C++ language, and no diagnostics should ever appear from the underlying C compiler (except due to glitches in either cfront or the C compiler). Thus cfront must be considered a legitimate compiler, as would any similar translator that compiled Ada through C. (Of course GNAT is also a legitimate compiler, I wasn't trying to imply it is a preprocessor!) See also Stroustrup D&E, Sec. 3.3.1, for a similar defense of what cfront is. Yes, there are certainly limitations to this approach, especially when it comes to areas like exception handling and symbolic debugging support. But the limitations falls under the category of "tradeoffs in compiler architecture", not "this is not a compiler". -- Jonathan Schilling Novell, UNIX Systems Group (UNIX System Laboratories) jls@summit.novell.com