From: robichau@lambda.msfc.nasa.gov (Paul Robichaux)
Subject: Re: Compiler in its own language (Was: Re: Play 20K expressions again, Sam)
Reply-To: robichau@lambda.msfc.nasa.gov
Organization: New Technology, Inc.
Date: Thu, 10 Sep 1992 15:37:53 GMT

In <67946@hydra.gatech.EDU> jm59@prism.gatech.EDU (MILLS,JOHN M.) writes:

[ deletia- reasons why Ada compilers are best written in Ada ]

>Without having come _close_ to writing a compiler or interpreter, I have
>some very serious reservations about this reasoning.

Fire away! As a former compiler developer, I have some disagreements
with your comments, and I'm sure some of the others will jump in (no,
not you, Ted.)

>Programming languages have various ranges of application, strengths and
>weaknesses, and tradeoffs of power vs. mastery for effective use.  I
>couldn't select only one language to do all types of programming and feel
>I had always the best tool.  (Naturally, I think the USDoD's attempt to do
>this with Ada forces some poor and expensive design decisions, some of which
>were on my projects. .. Sorry, no details.)  C was originally developed to
>write operating systems, and its relative simplicity, implementation on
>processors from 8080s to Crays (and targeting for an even _broader_ range),
>led to its use for a lot of programming, development of C++ and a wide range
>of programming support tools, etc.

>For all I know, Ada may _be_ the best language to write a compiler;  in that
>case it should be considered for Pascal compilers, etc.  My plaint is with
>the assumption that a single language has the qualities for any and all
>applications.

It seems that you have rejected one extreme and adopted the other. I
didn't read Stephane's comments as indicating that Ada was the
language of choice for building _any_ compiler; rather, that writing
an _Ada_ compiler _in Ada_ was a good idea, for the reasons he
specified.

Your argument with that statement seems to turn on the point that C
(with its wide range of host & target machines and "relative
simplicity") is a better language because it's in wider use.

The reasons we liked Ada for ALS/N were the same reasons many other
projects chose Ada: better support for good software engineering
practice. The fact that our project happened to be a compiler also
enabled us to benefit from Stephane's list of benefits.. having a
better test suite than ACVC was certainly to our advantage :)

	[ deletia- list of compilers & their source langauges ]

>Several surveys have compared these various compilers, and I don't
>recall any correspondence between user satisfaction and compiler source
>language.  Many users (including our team) report satisfaction with the
>DEC product, in our case partly because of its close correspondence to
>the XDAda for our MC680XX targets.  We also use the RTAda version of the
>Telesoft product, and found our development process much more painful
>using that package.

As you point out, there are more pieces to a development system than
just the compiler. DEC Ada produces good code, runs fast, and fully
supports interfaces to DEC's other products. Not all other
implementations are as nice, and of course the features which are
important to one application may be unimportant to another.

As has been pointed out hundreds of times here (and elsewhere), you
can write bad code in any language. I won't claim that DEC Ada, or
ALS/N, or any other tool is better because it was written in Ada;
however, I will claim that writing portable, modular, maintainable
implementations of large tools _is_ easier in Ada.

Regards,
-Paul, GT ICS '90
-- 
Paul Robichaux, KD4JZG          | I shouldn't bitch / I shouldn't cry
robichau@lambda.msfc.nasa.gov   | I'd start a revolution but I don't have time.


Newsgroups: comp.lang.ada