comp.lang.ada
 help / color / mirror / Atom feed
From: ralw@valiant.gmrc.gecm.com (R.A.L Williams)
Subject: Re: Ada is almost useless in embedded systems
Date: 1996/02/26
Date: 1996-02-26T00:00:00+00:00	[thread overview]
Message-ID: <RALW.96Feb26144135@valiant.gmrc.gecm.com> (raw)
In-Reply-To: 823906039.22113@assen.demon.co.uk

In article <4gea0h$ckd@goanna.cs.rmit.EDU.AU> ok@goanna.cs.rmit.EDU.AU (Richard A. O'Keefe) writes:

> ralw@valiant.gmrc.gecm.com (R.A.L Williams) writes:
> >To be honest, the engineer in charge of the development didn't
> >even consider using Ada but, if he had, I would have advised strongly
> >against it because, leaving aside the issues of large projects and
> >portability of representation, Ada (83 at least) is IMO far harder to
> >use than C.
> 
> This statement, coming from someone with such a background, deserves
> a fuller exposition.  I hope R. A. L. Williams will provide one.

The specification for some of the data formats had things like:
- values split across several bit fields, ie.
   a bit of A
   a bit of B
   some more of A
   the rest of B
- bit reversed values
- fixed point numbers with 'weird' resolutions.

OK, so Ada (83 and 95) can handle all these things. 95 far easier than
83 I suspect (modulo types are a tremendous improvement for example).
My attitude to this sort of thing is that you find the right tool for 
the job. I strongly suspect, based on my experience with Ada 83 at
least and having seen the solution in C, that any solution is bound to
be pretty much unreadable because of the nature of the problem. That
said C seems to be the better tool for this particular type of low
level manipulation because it is, basically, a high level assembler
and, as such, has syntax and semantics which maps very directly to the
architecture of the 'typical' CPU. Ada implements a higher level
abstraction which, although useful for writing 'high level'
applications, makes it comparatively clumsy for this sort of low level
code. Essentially what I am saying is that, where this sort of low
level manipulation is required using Ada will tend to obscure the
solution because of its high level abstraction where C, which is
inherently low level, expresses it succinctly.

Of course, the decision must look at the whole problem. In the system
discussed above there was very little else. We do a lot of this sort
of thing - interfaces between existing pieces of kit which are too
complex to implement entirely in hardware - and, franly, C is still
the ideal language. If there had been significant other processing or
control to do we might have looked at Ada or C++ or a mixed language
solution. As it was, these other choices were sub-optimal.
> 
> My personal experience, having used C since 1979, and Ada only for the last
> couple of years, is precisely the opposite.  I consider myself expert in C;
> perhaps that's why I thought it was hard to use.  I may say that it seems
> to be easier to _teach_ Ada than to teach C; you can get a heck of a long
> way without worrying about pointers, and it is so refreshing to be able to
> answer questions of the form "how do I do X" with "well, it's really a topic
> for later, but here's how you do it in Ada" instead of "well, there's no
> language support for that in C in order to keep the compiler simple back in
> the 70's."
> 
That's an interesting point. Ada certainly makes it easy to avoid the 
normal C beginners mistakes. Also, of course, we don't normally let
beginners loose on implementing devious embedded systems so the places
where the issue we're discussing is relevant don't arise.

> (I hope this crashes before the written-in-C operating system crashes again...)
> 
On our network it's the P(ersonal) C(atastrophes) that cause all the
problems. What do Microsoft use?
> -- 
> Election time; but how to get Labour _out_ without letting Liberal _in_?
> Richard A. O'Keefe; http://www.cs.rmit.edu.au/~ok; RMIT Comp.Sci.

Bill Williams
-- 
Bill Williams                     |GEC-Marconi does not necessarily
GEC-Marconi Research Centre       |endorse my opinions!

bill.williams@gecm.com
Tel: +44 1245 242016
Fax: +44 1245 478639





  parent reply	other threads:[~1996-02-26  0:00 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <823906039.22113@assen.demon.co.uk>
     [not found] ` <4fgrq3$mc4@qualcomm.com>
     [not found]   ` <dewar.823962356@schonberg>
1996-02-17  0:00     ` Ada is almost useless in embedded systems Tore Joergensen
1996-02-17  0:00       ` Robert Dewar
1996-02-19  0:00       ` Keith Thompson
1996-02-19  0:00         ` John McCabe
1996-02-21  0:00           ` Richard A. O'Keefe
1996-02-21  0:00             ` Norman H. Cohen
1996-02-19  0:00 ` Jon S Anthony
1996-02-19  0:00 ` AdaWorks
1996-02-21  0:00   ` Ken Garlington
1996-02-23  0:00     ` AdaWorks
1996-02-19  0:00 ` R.A.L Williams
1996-02-21  0:00   ` Richard A. O'Keefe
     [not found] ` <824056183.18993@assen.demon.co.uk>
     [not found]   ` <311E924E.74CE@escmail.orl.mmc.com>
1996-02-17  0:00     ` Ada is great for embedded systems (was Ada is almost useless in embedded systems) Ken & Virginia Garlington
     [not found]   ` <4fnqpm$3nh@news.sanders.lockheed.com>
1996-02-19  0:00     ` Ada is almost useless in embedded systems AdaWorks
1996-02-21  0:00       ` Hugh Dunne
1996-02-21  0:00       ` Ken Garlington
     [not found]   ` <4fnp37$nj1@theopolis.orl.mmc.com>
1996-02-22  0:00     ` Alan Brain
1996-02-26  0:00 ` R.A.L Williams [this message]
     [not found]   ` <4h3q56$1vk@goanna.cs.rmit.EDU.AU>
     [not found]     ` <dewar.825635955@schonberg>
     [not found]       ` <826571250.140@assen.demon.co.uk>
     [not found]         ` <dewar.826634800@schonberg>
1996-03-21  0:00           ` John McCabe
1996-03-23  0:00             ` Side-effect arithmetic again [was: Ada ... in embedded systems] John G. Volan
1996-03-23  0:00               ` Robert Dewar
1996-03-25  0:00                 ` Tucker Taft
1996-03-25  0:00                   ` Norman H. Cohen
1996-03-25  0:00                   ` Robert A Duff
1996-03-26  0:00               ` John G. Volan
1996-03-26  0:00                 ` Robert Dewar
1996-03-29  0:00                   ` Robert I. Eachus
1996-03-26  0:00                 ` Robert A Duff
1996-03-26  0:00                   ` Tore Joergensen
1996-03-27  0:00                     ` John G. Volan
1996-03-28  0:00                       ` Tucker Taft
1996-03-28  0:00                         ` Robert Dewar
1996-03-29  0:00                           ` Tucker Taft
1996-03-29  0:00                             ` Tucker Taft
1996-03-27  0:00                     ` John G. Volan
1996-03-29  0:00                       ` Robert A Duff
1996-03-30  0:00                         ` John G. Volan
1996-03-30  0:00                         ` John G. Volan
1996-03-31  0:00                           ` AdaWorks
1996-04-01  0:00                           ` Robert A Duff
1996-03-27  0:00                     ` John G. Volan
     [not found] ` <emery-0902962215150001@line316.nwm.mindlink.net>
     [not found]   ` <DMoA85.52I@eskimo.com>
     [not found]   ` <823965654.4500@assen.demon.co.uk>
     [not found]     ` <824165619.14894@assen.demon.co.uk>
     [not found]       ` <JSA.96Feb13133713@organon.com>
     [not found]         ` <824332550.2485@assen.demon.co.uk>
1996-02-17  0:00           ` Ada is almost useless in embedded systems Ken & Virginia Garlington
1996-02-17  0:00             ` Robert Dewar
1996-02-18  0:00               ` John McCabe
1996-02-18  0:00                 ` Robert Dewar
1996-02-19  0:00                   ` John McCabe
     [not found]         ` <824259217.26321@assen.demon.co.uk>
1996-02-17  0:00           ` Robert Dewar
1996-02-18  0:00             ` John McCabe
1996-02-18  0:00               ` Robert Dewar
1996-02-19  0:00                 ` John McCabe
1996-02-20  0:00                   ` Robert Dewar
1996-02-21  0:00                   ` Fergus Henderson
     [not found]       ` <4fs7ml$cf1@rational.rational.com>
1996-02-26  0:00         ` Ada 83 " Alan Brain
     [not found] ` <RALW.96Feb28100925@vulcan.gmrc.gecm.com>
1996-03-15  0:00   ` Ada is almost useless " Robert I. Eachus
     [not found]     ` <dirk.827148504@demokrit>
1996-03-18  0:00       ` David Weller
1996-03-18  0:00     ` Alan Brain
     [not found]       ` <4ik5bm$ogg@dayuc.dayton.saic.com>
1996-03-18  0:00         ` Side-effect arithmetic again [was: Ada ... in embedded systems] Robert Dewar
1996-03-19  0:00           ` Norman H. Cohen
1996-03-19  0:00           ` Jay Martin
1996-03-21  0:00             ` Robert I. Eachus
     [not found]   ` <dewar.825775334@schonberg>
     [not found]     ` <RALW.96Mar8113005@vulcan.gecm.com>
     [not found]       ` <4hv2fb$6ra@cville-srv.wam.umd.edu>
     [not found]         ` <4xybp895y6.fsf@leibniz.enst-bretagne.fr>
     [not found]           ` <3144CC40.33A0@escmail.orl.mmc.com>
     [not found]             ` <dewar.826604375@schonberg>
     [not found]               ` <3145FF2C.6139@escmail.orl.mmc.com>
     [not found]                 ` <dewar.826829407@schonberg>
     [not found]                   ` <31499D21.1DA6@escmail.orl.mmc.com>
1996-03-15  0:00                     ` Bug or Limitation? (was: Ada is almost useless in embedded systems) Robert Dewar
1996-03-16  0:00                       ` Ted Dennison
1996-03-20  0:00                         ` Side-effect arithmetic again [was: Ada ... in embedded systems] Robert I. Eachus
1996-03-20  0:00                           ` Robert A Duff
1996-03-21  0:00                             ` Peter Hermann
1996-03-21  0:00                               ` Robert Dewar
1996-03-25  0:00                                 ` Robert I. Eachus
1996-03-28  0:00                               ` Mats Weber
1996-03-29  0:00                                 ` John G. Volan
1996-03-20  0:00                           ` John G. Volan
1996-03-22  0:00                             ` Alan Brain
1996-03-21  0:00                           ` Geert Bosch
1996-03-26  0:00                           ` Mats Weber
1996-03-16  0:00 ` Ada is almost useless in embedded systems Kevin Dalley
     [not found] <9603131418.AA01642@eight-ball>
1996-03-15  0:00 ` Norman H. Cohen
1996-03-15  0:00   ` Robert Dewar
1996-03-18  0:00   ` Peter Hermann
1996-03-18  0:00     ` Robert Dewar
1996-03-18  0:00   ` Stephen Crawley
1996-03-19  0:00 ` Laurent Guerby
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox