* Re: Advantages
2004-06-25 12:24 ` Advantages Andrew Carroll
@ 2004-06-25 12:22 ` Peter Amey
2004-06-25 20:46 ` Advantages of Ada (also AdaOS) Nick Roberts
2004-06-26 20:43 ` Advantages Marin David Condic
2 siblings, 0 replies; 4+ messages in thread
From: Peter Amey @ 2004-06-25 12:22 UTC (permalink / raw)
Andrew Carroll wrote:
[snip]
>
>>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.
>
>
> Okay Marin and Nick, I want to learn more. Where can I find the
> statistical and practical proof? I'm not trying to snub your comments,
> I just want to be able to provide the proof when I talk to my co-workers
> about Ada. Thanks!
>
>
Not Marin or Nick but unsolicited 2c anyway.
You could take a look at the Ravenscar profile. This is a subset of Ada
95's built-in tasking constructs that guarantees schedulability analysis
and freedom from deadlocks. Using SPARK in conjunction with this allows
lots of other nice properties to be proved as well. Ravenscar is
interesting because it is existential proof that Ada facilitates
reliable use of concurrency. I don't know of any equivalent in any
other language. Flight critical software to DO-178B level A has been
written using these Ada tasking constructs. The profile will be a
defined part of the Ada language after the current 2005 revision process.
Some references:
Pofile definition: <http://polaris.dit.upm.es/~ork/documents/RP_spec.pdf>
Crosstalk article:
<http://www.stsc.hill.af.mil/crosstalk/2003/11/0311dobbing.html>
Aonix Raven link:
<http://www.aonix.com/pdf/ravensc.pdf>
RavenSPARK link:
<http://www.praxis-cs.co.uk/sparkada/pdfs/high_integrity_ravenscar.pdf>
Peter
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Advantages of Ada (also AdaOS)
2004-06-25 12:24 ` Advantages Andrew Carroll
2004-06-25 12:22 ` Advantages Peter Amey
@ 2004-06-25 20:46 ` Nick Roberts
2004-06-26 20:43 ` Advantages Marin David Condic
2 siblings, 0 replies; 4+ messages in thread
From: Nick Roberts @ 2004-06-25 20:46 UTC (permalink / raw)
"Andrew Carroll" <andrew@carroll-tech.net> wrote in message
news:mailman.155.1088165232.391.comp.lang.ada@ada-france.org...
> ...
> Okay Marin and Nick, I want to learn more. Where can I
> find the statistical and practical proof? I'm not trying to snub
> your comments, I just want to be able to provide the proof
> when I talk to my co-workers about Ada. Thanks!
Ada provides a fairly comprehensive set of features for concurrent
programming built into the language, which are all carefully defined by the
standard, and so permit concurrent Ada programs to be highly portable.
Concurrent programming in most other languages (certainly C and C++) can
only be achieved using calls to a library.
There are dozens of different kinds of typical mistake that an Ada compiler
can detect that one of these languages cannot, and dozens more that will be
caught at run time in an Ada program that will simply cause misbehaviour
(typically intermittent and hard to detect) in one of the other languages.
Typically a library used for concurrent programming is operating-system
specific, thus rendering programs that use it totally non-portable to any
other environment.
Of those languages which do have special support for concurrency, I think it
would probably be fair to say that most (maybe all) do not have facilities
that are as comprehensive nor as well designed as Ada. I'd certainly
describe Java like that.
I can produce illustrations of these points, if required. I'm not sure that
I can produce statistical proof as such.
On a related note, I'd like to mention that the AdaOS project is still
extant, and I'll be communicating about it soon.
--
Nick Roberts
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Advantages
2004-06-25 12:24 ` Advantages Andrew Carroll
2004-06-25 12:22 ` Advantages Peter Amey
2004-06-25 20:46 ` Advantages of Ada (also AdaOS) Nick Roberts
@ 2004-06-26 20:43 ` Marin David Condic
2 siblings, 0 replies; 4+ messages in thread
From: Marin David Condic @ 2004-06-26 20:43 UTC (permalink / raw)
I'm not sure what you want for statistical proof. In my experience with
writing low-level software in an environment where I don't have an OS, I
can say that the things that tend to cause the most difficult problems
are where the software meets the hardware. Try to get two different CPUs
synchronized across some communication link or deal with some I/O device
where timing or synchronization are important to getting it right. Or
sometimes its within the CPU instruction set itself - where arguments
start about hardware vs software bugs. The *hard* stuff to get right is
not related to bugs in type checking or constraint checking (or other
language related stuff). Its the uncertainty of when things are
happening or the fact that dozens of things are happening nearly all at
once and corner conditions can come up that are difficult to test and
difficult to program around.
Tasking may help, but that is only built on the assumption that your
tasking primitives down at the low level have no bugs. Try figuring out
how to synchronize tasks across multiple processors and implement the
full set of Ada requirements in that regard and it might give you an
idea of how difficult that might be to get right.
So I don't think that Ada automagically makes an OS "better" in some
regard. Its going to have more to do with how sound the "Model" is for
the lower level stuff - and even then, as you pile more and more layers
on top ofit, you start discovering the limitations or design flaws in
the model. I'm not saying someone can't do a better job with Ada - just
that an OS is *really hard* to make stable and secure and it isn't
something that can be done in a few weekends of coding and hope it will
somehow be better.
MDC
Andrew Carroll wrote:
>>------------------------------
>>Message: 6
>>From: "Nick Roberts" <nick.roberts@acm.org>
>>Subject: Improving Ada's Image
>>
>>"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.
>
>
> Okay Marin and Nick, I want to learn more. Where can I find the
> statistical and practical proof? I'm not trying to snub your comments,
> I just want to be able to provide the proof when I talk to my co-workers
> about Ada. Thanks!
>
>
--
======================================================================
Marin David Condic
I work for: http://www.belcan.com/
My project is: http://www.jsf.mil/NSFrames.htm
Send Replies To: m o d c @ a m o g
c n i c . r
"Face it ladies, its not the dress that makes you look fat.
Its the FAT that makes you look fat."
-- Al Bundy
======================================================================
^ permalink raw reply [flat|nested] 4+ messages in thread