From: Derek M Jones <derek@NOSPAMknosof.co.uk>
Subject: Re: Free e-book discussing the C Standard
Date: Mon, 04 Jul 2005 23:06:32 GMT
Date: 2005-07-04T23:06:32+00:00 [thread overview]
Message-ID: <Xns968A1850758Dderekknosofcouk@62.253.162.205> (raw)
In-Reply-To: 1120505452.793985.251860@o13g2000cwo.googlegroups.com
Jim,
Looks like you are a fast reader.
> Your work certainly has a negative point of view concerning Ada.
I think you are reading what I wrote through Ada 'tinted' glasses.
> You suggest that Ada was more expensive than C for DoD development
> because of the number of cancelled Ada projects.
Subsection 8.6 of sentence 0 does not make a comparison against C.
> This implies that
> the number of cancelled projects in Ada was significantly more than
> the number of cancelled projects in C for the same period, or over any
> similar period.
The total cost of a project would also need to be taken into
account. There is no specific comparison against C.
> Do you have any studies showing the cancellation
> rates of Ada projects versus projects in C?
No I do not. Do you? I suspect that many projects are cancelled
for non-programming language related reasons.
> Do you have any studies showing that the up-front development costs
> of Ada programs exceeded those of C programs when normalized on
> project complexity?
I have failed to find much reliable data on this subject.
Do you have any?
> During the time of the DoD Ada mandate many people insisted on using
> validated Ada compilers while they were not concerned about using
> validated C compilers. How do you explain that, except for an
> irrational preference for C over Ada?
I am sure there have also been plenty of instances of an irrational
preference of Ada over C.
> You note that the directive
> mandating the use of Ada was cancelled in 1997. Do you know why it
> was cancelled?
Is there a reason other than that stated in the quoted reference?
> Of course, there was never a mandate to use C. Cancellation of the
> Ada mandate simply placed C and Ada on the same footing as far as
> the Dod was concerned for choice of languages. It did not reject
> Ada as a language.
While I did not say it did, it is does represent a big climb down
(given the commitment previously given to the language).
> Cancellation of the Ada mandate was part of a larger trend in the
> DoD to move towards Commercial Off The Shelf (COTS) solutions.
I don't see a causal connection between the two.
> I wonder how well C is really suited for modern system development
> when we need to deal with complex parallel systems using multi-core
> CPUs. There are certainly C threading libraries. In fact several
> flavors of C threading libraries exist. Threading libraries are not
> yet part of any C standard. Does the lack of any C standard for
> threading (or concurrency in general) make C more attractive for
> development of concurrent system than Ada? I do not see how this
> could be true.
Why do people choose to use one language over another? It
often seems to be the case that people rationalise their decision
after they have made it.
> You state that C is based on a single-threaded execution model.
> C also deals with the interrubtability of functions due the receipt
> of an interrupt.
>
> Ada has built-in concurrency. Interrupt handling for Ada 95 is
> built on its built-in concurrency. An Ada interrupt handler can
> be implemented as a simple task suspended on a protected entry
> associated with the interrupt. Only that task needs to deal with
> the interrupt.
>
> The single-threaded model of C presents more detailed complexity
> to the C programmer when dealing with concurrency than the tasking
> model does to the Ada programmer. This complexity is a paradox to
> the C model of simplicity. The extra complexity faced by the C
> programmer invites human error. The extra simplicity faced by the
> Ada programmer reduces the opportunities for error.
The term lower complexity is better than extra simplicity.
I would agree that reducing complexity can reduce the number
of errors made.
Ada has a particular model of concurrency. I would expect fewer
concurrency related errors to be made, compared to C, for those
cases where the application concurrency model had a straight
forward mapping to the Ada concurrency model. When there is not
a good fit between concurrency models it is can be very difficult
to estimate relative complexity.
> Correct
> programs can be written in either language. Incorrect programs
> can also be written in either language. This does not imply parity.
> More errors will be created in the environment where errors are
> easier to create and harder to avoid. Fewer errors will be created
> in the environment where errors are harder to create and easier to
> avoid.
I would not make a easy/hard distinction. People make mistakes
for a variety of reasons, including information overload (really
another term for complexity), ignorance, lack of competence, etc.
next prev parent reply other threads:[~2005-07-04 23:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-04 14:42 Free e-book discussing the C Standard Derek M Jones
2005-07-04 16:54 ` Pascal Obry
2005-07-04 18:19 ` Derek M Jones
2005-07-04 19:30 ` jimmaureenrogers
2005-07-04 23:06 ` Derek M Jones [this message]
2005-07-05 13:00 ` jimmaureenrogers
2005-07-13 13:32 ` Frank J. Lhota
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox