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_MSGID, SUBJ_ALL_CAPS autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9e20292f693f1408 X-Google-Attributes: gid103376,public From: stt@houdini.camb.inmet.com (Tucker Taft) Subject: Re: ADA CORE TECHNOLOGIES ANNOUNCES GNAT-TO-JAVA SYSTEM Date: 1997/09/16 Message-ID: #1/1 X-Deja-AN: 272997542 Sender: news@inmet.camb.inmet.com (USENET news) X-Nntp-Posting-Host: houdini.camb.inmet.com References: <341D47EE.3804@gsfc.nasa.gov> Organization: Intermetrics, Inc. Newsgroups: comp.lang.ada Date: 1997-09-16T00:00:00+00:00 List-Id: Stephen Leake (Stephen.Leake@gsfc.nasa.gov) wrote: : ... : I guess this is what Intermetrics has; the AdaMagic front end : accommodates several backends. Is that all written in Ada? The AdaMagic front end was written in ANSI C. One reason was to avoid the bootstrapping problem, which was profound for us since we weren't building a general purpose backend, and we wanted to be the first to validate an Ada 95 compiler (albeit for a 24-bit embedded target). Perhaps more importantly, our target market is vendors selling compilers with backends generally written in C, so we felt this would ease the ability of our licensees to integrate our front end with their back end. Amusingly enough, our first two backends, the one we ourselves wrote for the Patriot ground-systems control computer, and the one from Aonix, were both written in Ada (83). In any case, we ended up writing in a kind of Ada95-ized C, with the equivalent of package specs and private types, represented using visible and private header files and lots of accessor functions, and type extension represented using a nested parent component and explicit conversion functions, etc. It has been pretty reliable and maintainable, but you still get caught periodically by the annoying C human engineering stupidities (gcc "-Wall" helps a little). The AdaMagic run-time system is written in Ada 95, but run-time systems generally need to be compiled by the associated compiler anyway, so there isn't really a "bootstrapping" issue. And as mentioned above, our "own" backend is written in Ada 83, as is our debugger. Of course, if we could have delayed our start date a few years, we would have written our front end in Ada 95, and we still have vague dreams of incrementally converting it to Ada 95. On the other hand, chasing bugs in ANSI C code does provides a nice regular reminder of why I prefer Ada ;-). : -- : - Stephe -- -Tucker Taft stt@inmet.com http://www.inmet.com/~stt/ Intermetrics, Inc. Burlington, MA USA