comp.lang.ada
 help / color / mirror / Atom feed
From: "Nick Roberts" <nick.roberts@acm.org>
Subject: Improving Ada's Image
Date: Thu, 24 Jun 2004 15:21:56 +0100
Date: 2004-06-24T15:21:56+01:00	[thread overview]
Message-ID: <2k06c5F16ql15U2@uni-berlin.de> (raw)

"Marin David Condic" <nobody@noplace.com> wrote in message
news:40CEDEBB.3050209@noplace.com...

> Like I said: The thing that makes operating systems hard to
> get right are not usually language issues. They are related to
> the asynchronicity of events and the complexity of the
> algorithms involved.

This is one of the biggest advantages of writing system software in Ada.
Quite a lot of the really nasty pitfalls associated with parallel
programming in other languages are made either impossible or much more
easily detected and debugged by Ada.

> Perhaps a hypothetical Ada OS might eliminate some errors,
> but the worst ones are not usually an issue of language checks.

By virtue of being written in Ada, a (hypothetical ;-) AdaOS will surely
eliminate a lot of errors that it would have been susceptible to suffering
from if it were written in a different language. I actually think that this
does include most of the worst ones. There are some things we will have to
be careful about (the Ada will not protect us from), such as specifying
representation clauses correctly (consistently).

Certainly there tend to be lots of ways, these days, that typical hardware
(including processor architectures and implementations, as well as
peripherals) can screw up (typically the whole computer) if it's not handled
by the software in just the right way (which may not be quite the way
described in the documentation, if you're lucky enough to have some
documentation).

> Also, because OS's need high efficiency, it is not at all
> uncommon to turn off most of the runtime checks because
> you really need the performance.

Hehe. It may be true that (commercial) OSes need (to be able to claim) high
efficiency. But, of course, this is only because the marketing department
demands it. I suppose "It's Really Fast" looks better on the brochure than
"There Are Fewer Bugs."

However, in the real world (of software engineering), an OS is like just
about any other big program: there will be a few small parts of it that
really need to be very efficient; all the rest of the code (probably more
than 90%, in fact) is not speed critical. What is really critical about most
parts (more than 99%) of an OS is that they are reliable.

> (Or is someone suggesting that all Ada checks should be
> left in when developing an OS?)

Indeed I am. It is vital that they are. Only in those (very few) places
where speed is critical should they be omitted.

> Ada can't help with a variety of runtime errors unless
> the checks are left in, so does it really buy enough
> benefit to be able to make claims about how
> wonderful a theoretical Ada OS would be?

There is one special requirement of an OS that is different to most
application programs (but similar to most embedded software), which is that
(when delivered, at least) it has the ability to properly handle any
error/exception caused/raised (almost) anywhere. This can actually require a
peculiarly large amount of error handling code. It also impacts design
decisions (often impelling the rejection of more complicated facilities or
mechanisms).

But it's worth it. Leaving the checks in means that faults in the OS are
caught. Putting in good (even quite extensive) error handling code means
that when a fault is caught, it is handled reasonably gracefully. I think
that is what a good OS should do.

-- 
Nick Roberts





             reply	other threads:[~2004-06-24 14:21 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-24 14:21 Nick Roberts [this message]
2004-06-25  0:20 ` Improving Ada's Image Jacob Sparre Andersen
2004-06-25 11:30   ` Marin David Condic
2004-06-25 14:54     ` Larry Kilgallen
2004-06-25 16:12       ` Frank J. Lhota
2004-06-26 20:26       ` Marin David Condic
2004-06-28 13:41         ` Frank J. Lhota
2004-06-28 14:39           ` Dmitry A. Kazakov
2004-06-29 11:39             ` Marin David Condic
2004-06-29 11:48               ` Martin Dowie
2004-06-30 11:46                 ` Marin David Condic
2004-06-28 17:00           ` Larry Kilgallen
2004-06-29 11:35           ` Marin David Condic
2004-06-26  0:01   ` David Starner
2004-06-26 10:12     ` Nick Roberts
2004-06-26 11:32       ` Luke A. Guest
2004-06-26 15:20         ` Nick Roberts
2004-06-29 18:44           ` Luke A. Guest
2004-06-29 22:25             ` Nick Roberts
2004-06-27 16:40         ` Pylinius
2004-06-27 19:04           ` Nick Roberts
2004-06-26 11:53       ` David Starner
2004-06-26 15:21         ` Nick Roberts
2004-06-27  3:50     ` Robert I. Eachus
     [not found] <20040604175015.9DE3E4C409B@lovelace.ada-france.org>
2004-06-04 20:38 ` Improving Ada's image Andrew Carroll
2004-06-05 12:49   ` Marin David Condic
2004-06-05 17:07     ` Marius Amado Alves
2004-06-05 20:39       ` Marin David Condic
2004-06-05 22:18         ` Marius Amado Alves
2004-06-05 23:40           ` Marin David Condic
2004-06-06  8:48             ` Marius Amado Alves
2004-06-06 21:34           ` Georg Bauhaus
2004-06-06 22:30             ` Marius Amado Alves
     [not found]             ` <40C39B01.5060806@netcabo.pt>
2004-06-06 22:50               ` Marius Amado Alves
2004-06-06  2:53         ` Robert C. Leif
2004-06-06  3:25           ` Wes Groleau
2004-06-06 11:54             ` Marius Amado Alves
2004-06-06 18:21               ` Wes Groleau
     [not found]         ` <40C246A7.4070705@netcabo.pt>
2004-06-06  8:24           ` Marius Amado Alves
2004-06-06 14:25             ` Marin David Condic
2004-06-06 18:14               ` Wes Groleau
2004-06-07 17:04   ` Warren W. Gay VE3WWG
2004-06-07 19:06   ` Björn Persson
  -- strict thread matches above, loose matches on Subject: below --
2004-05-30 11:46 Improving Ada's image - Was: 7E7 Flight Controls Electronics Per Dalgas Jakobsen
2004-05-31 20:55 ` Improving Ada's image Björn Persson
2004-06-01  0:41   ` Alexander E. Kopilovich
2004-06-01 11:23   ` Marin David Condic
replies disabled

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