[comp.lang.ada] Good Design Strategies <Was com

ryer@inmet.UUCP (03/04/89)

        Please excuse the following flame on whether a given "tool" is
        a compiler and whether its input space defines a language.
        Prompted by the posting excerpted below:

>/* Written  5:25 pm  Mar  1, 1989 by billwolf@hubcap.UUCP in inmet:comp.lang.ada */
>/* ---------- "Re: Good Design Strategies <Was com" ---------- */

>Classic-Ada is *NOT* a super-set of Ada.  Harris has also developed a
>tool, called InnovAda, for true object-oriented programming in Ada 
>(multiple-inheritance, dynamic binding, run-time message evaluation,
>and so on).  Such tools generate compilable Ada code; if you wanted to,
>you could have created the same code generated by the tool.  InnovAda
>and similar tools are preprocessors which enhance productivity by giving
>the designer/programmer a powerful development and maintenance environment.
>There are graphic design tools on the market which do some amount of
>code generation; would you consider those to be supersets of Ada?

Is "Classic Ada" (or InnovAda) an Ada superset?

a. Does using it result in SOURCE programs that aren't accepted by other
Ada compilation systems?

b. Does anyone reading the SOURCE code have to know more than Ada to
understand it?

c. Does it get confused when I put some reusable Ada components into the
SOURCE code (e.g. by complaining that "Classic-Ada" keywords are being used as 
variable names)?

In the above, "SOURCE code" is defined as that which the programmer writes and
the maintainer maintains, and which the design documentation describes in
detail.  It is the SOURCE code which contains comments that map accurately
to block and variable names, types, etc.  I belive that for "Classic-Ada", 
SOURCE code means the "Ada with extensions".  

Therefore, my opinion is that "Classic-Ada" is a programming language which
has all the drawbacks of any other Ada superset.  I'm sure it has 
advantages as well.  Whether "Classic-Ada" is a language is not dependent
on whether it is compiled in a single step, or in two steps with Ada
generated in between.

Current Syntax Editors and Graphic Design tools are not Ada supersets, because 
they are used to intially generate the Ada which is then maintained directly.
These tools help *generate* the SOURCE code which is still pure Ada.  

If the graphics form of a program was used to describe the entire program, and 
the comments and documentation refer to the graphics form, and maintenance is 
done by modifying the graphics and automatically re-generating the Ada, then 
graphics would be the SOURCE code, and such a CASE tool *would* be a programming
language different from Ada.  I have not heard of any such tools yet.

Mike Ryer
Employed by Intermetrics, Inc., but speaking for myself