Print

Print


Philip's reply reveals that my language was a little sloppy, so
to summarize:  I advise against trying to design a subset for any
implementation until you can demonstrate that a particular feature
is not feasible.  The discussions, predictions, and speculations going
on here are valuable in themselves, but they are still not
"demonstrations."

(Also I apologize for trying to remember the subject line from memory)

--------------

From [log in to unmask] Tue Nov 19 11:22 EST 1996
Date: Tue, 19 Nov 1996 10:17:42 -0600
From: Philip Johnson <[log in to unmask]>
Subject: Re: Ada Subset for micro-controller?

W. Wesley Groleau (Wes) wrote:
>
> Why a subset?

I realize that your comments are pointed at Microcontrollers,  but the subset
question is far more reaching than just one class of processor.  My comments
are pointed at general system consideration.

> Some believe that the full language can not possibly be implemented in a
> cross-compiler for such (a) chip(s).  Well, why not port gnat/gcc to the
> chip first, and find out if compiled code can "fit" and run?  THEN if it
> doesn't, think about what to leave out.

Here you refer to "chips", then "compiled code" that can fit.  Isn't getting
the compiled code to fit a system contraint rather than a processor contraint?

In my experience this is the case.  I wrote a system in full ISO/ANSI Pascal
that worked great as long as I had 64Kb of memory and a 512Kb EPROM.  It would
never fit in 256 bytes of memory or a 1Kb EPROM.

I have written systems that run within 256 bytes of ram and 4 Kb of EPROM.
I fully understood the contraints and adjusted my approach to fit the system.

> In the case of gnat, isn't it true that most of the run-time is in Ada
> and only linked if needed?  So the documentation MIGHT end up saying
> "Can compile full Ada, but if you use features A, B, C, ... then your
> program won't fit in ..."

This is the case in all software.  I remember when a system (DEC PDP-11)
only allowed a 32 Kb task image.  I remember my first PC had 4 Kb of memory
and I could run everything from games to word processors.  Now if you have
less than 16 Mb in a PC you can barely get the OS to run.  I say this only
to demonstrate that all systems present some contraint on the developer.


Any development requires knowledge of the system contraints.  If a language
feature is not appropriate for a specific environment and the developer is
made aware of the restriction I see no problem.

> >From the marketing viewpoint, which do you think will sell better:
>
> 1. "MyCo's "Tiny Ada" has been carefully crafted to exclude constructs
>     that will not fit on the 5097 control system."

If this were the only configuration that I was planning to use and the cost
was satisfactory I would select this.

> 2. "OurCo's Ada compiler supports the full language, although users
>    cross-compiling to the 5097 CS will have to avoid certain features
>    via pragma Restrictions."

If I were planning to have this system reuse code from other systems, or
reuse code developed for this system on other systems, and the restrictions
were completely identified, and the cost was satisfactory this would be my
choice.

> 3. "Wizards, Inc. used our tremendous expertise in these systems to
>    design out features that are unsupportable.  Don't buy MyCo or OurCo
>    because their compiler can't possibly work.  Wizard Ada will be
>    available Real Soon Now..."

Sound like MS vaporware.  8^{)

This says that someone has decided for me what is and isn't supportable.
They may be completely correct or maybe not.  I would have to spend my mony
to find out if they are truely experts or not.  I would have to think long
and hard on this one.

You bring up a number of valid points if they are viewed from a narrow scope
of microcontrollers, but as I said the subset question is far more reaching
than just one class of processor.  Also,  my experiences with language
subsets has not been positive and I tend to stay away from them.

The nice thing about this is that all sides can be presented and debated.
You neve can tell I have been swayed before when the arguments were strong
enough to convince me that I was in error.  8^{)

Phil
 _______________________________________________________________________
|                Ada, Perl, and Java! It can't get any better.
|
|Philip Johnson                             Telco: (205) 890-1178
|Sr. Software Engineer                      Fax  : (205) 890-1174
|International Space Systems Inc.           email: [log in to unmask]
|Huntsville, AL
-----------------------------------------------------------------------