[comp.lang.ada] Ada Interpreter question

SAHARBAUGH@ROO.FIT.EDU (06/28/91)

Is NYU Ada/ED defined to be an "Ada Interpreter".  The version
I I used from 1983 to 1987 required a complete processing of the
source code before it would then begin to interpret the
intermediate code it had produced.
In about 1984 Robert Dewar said to me "You really don't expect
to ever be able to interpret Ada code?"
Then a few years later the people at Westinghouse said they
would soon have the ability to interpret the complete Ada
language.  Is their effort the ACE mentioned in the posting?
Is ACE an interpreter by my definition?  ( For a demonstration
of my definition of an interpreter go to your PC and type BASIC).
I hope that a good quality Ada interpreter is available.  I
have always regretted that I am not skilled enough to write one.
You see, I am a systems engineer and I have really believed
in programmable systems ever since I met my first one
in the early 60's. The whole idea of edit, compile, link,
download and run is, to me, an expedient that we must outgrow
if computers are to be truly useful. As an example scenario,
for tutorial purposes only, imagine a manned deep space exploration
with all on-board software in Ada.  Imagine a need to reprogram
the software.  The crew must be have all the baggage of the
compiler etc. plus the skills to use them or, if the computers
are truly Ada machines, the crew can change the Ada statements and
immediately the computer changes its behavior.
Since I learned of ACE I thought that this was a very good
thing to do.  The idea that the machine understands my language, Ada,
would be very good.  If I can type in an Ada statement as a command
to ACE is there any reason I can't type in my whole Ada program
and have ACE interpret it?  Efficiency is usually cited as
the downside of interpreters and thats the show stopper for the
systems built by people who read this BB. BUT there are many
applications for computers that afford to be "inefficient". If the
machine will run say 100 Ada statements per second I can use
that machine to control many industrial processes and I don't need
to drive 50 miles back to my office to recompile the Ada to change a
plus sign to a minus sign.(Thats when you learn how to patch
object code). I'm sure you see the same situation on a ship at sea, etc.
So, in conclusion, I would like to know if ACE is a true Ada interpreter
and some measure of its speed performance. Thanks.
sam harbaugh saharbaugh@ROO.FIT.EDU        
-----------

mfeldman@seas.gwu.edu (Michael Feldman) (06/29/91)

In article <9106281209.AA08681@ajpo.sei.cmu.edu> SAHARBAUGH@ROO.FIT.EDU writes:
>Is NYU Ada/ED defined to be an "Ada Interpreter".  The version
>I I used from 1983 to 1987 required a complete processing of the
>source code before it would then begin to interpret the
>intermediate code it had produced.
>In about 1984 Robert Dewar said to me "You really don't expect
>to ever be able to interpret Ada code?"
Ada/Ed is loosely called an interpreter. Actually, it's known officially as 
"executable semantic model." The Ada source is translated into an
intermediate form, then the intermediate form is interpreted. Whether
you call the first pass (source->IF) a "compiler" is splitting hairs.
It is certainly a translator. In a sense, Ada/Ed is a front end without
the back end, since most compilers produce some sort of IF (attributed
trees or suchlike). Ada/Ed just stops there.

>Then a few years later the people at Westinghouse said they
>would soon have the ability to interpret the complete Ada
>language.  Is their effort the ACE mentioned in the posting?
>Is ACE an interpreter by my definition?  ( For a demonstration
>of my definition of an interpreter go to your PC and type BASIC).

The version of ACE that I copied from STARS and built on our Sun indeed
seems to be an interpreter. But at least this version supports a sort
of "Pascal subset" of Ada. It seems to be designed less as a full 
interpreter for Ada than the sort of portable shell interpreter we were
all going to have as a part of the magical APSE.

Are my observations correct here? I haven't tested ACE extensively yet,
and maybe I'm underestimating its capability. If it's really intended as
an Ada interpreter for a really signficant part of the language (meaning
full data structures, generics, packages, maybe even tasking), is there
any schedule for its completion, or is it in the "real soon now"
category?

My bottom line: nice as far as it goes, lets you write "shell scripts"
using Ada procedure syntax, etc. But doesn't go nearly far enough. Or
have I missed a key bit of the documentation?

Mike