TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Classic View

Use Proportional Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Colin Paul Gloster <[log in to unmask]>
Tue, 5 Sep 2006 14:20:56 +0200
TEXT/PLAIN (2691 bytes)
On Mon, 4 Sep 2006, Pascal Obry wrote:

"[..] Maybe a good approach to this is to
point out that OpenMP/MPI is the procedural way to handle parallelism,
Ada goes far beyond as it has unified the OO paradigm and the
parallelism/concurrency. So in a sense the Ada solution (and Java if I
can pronounce this word here :) is the "revolution" with have seen with
the OO paradigm in the nineties.


Neither Ada nor Java is revolutionary and it is written that even before 
concurrent object oriented languages' inheritance anomalies were called as 
such, they had been documented in the 1980s before Java existed and before 
Ada became object oriented (though of course, we can cite many 
publications from that era in which it had been claimed that Ada 83 is 
object oriented).

You seem to take it for granted that concurrency and object orientation 
are fantastic. They have their benefits and they have their disadvantages, 
and juxtaposing them can result in issues not possible otherwise, e.g. an 
inheritance anomaly.

Though it had been immodestly claimed in Michell and Lundqvist, 
"Extendable, dispatchable task communication mechanisms", Proceedings of 
the ninth international workshop on Real-time Ada, 1999 that "This paper 
proposes Ada language changes that would make protected types and tasks 
partners in object oriented programming and would cure the inheritance 
anomaly", Michell et al. have admitted in "Integrating Object-Oriented 
Programming and Protected Objects in Ada 95", ACM Transactions On 
Programming Languages and Systems, Vol. 22, No. 3, May 2000 that:
"[..] Inheritance anomalies in Ada 95 with extended protected types can still 

The proposals in that "TOPLAS" paper were discarded in favor of what was 
chosen for Ada 2005, and it is written in

An important advantage of eliminating inheritance of any code or data
for tasks and protected types is that the "monitor"-like benefits of
these constructs are preserved. All of the synchronizing operations are
implemented in a single module, simplifying analysis and avoiding any
inheritance "anomalies" that have been associated in the literature with
combining inheritance with synchronization.


However, grand claims have been made before and it may be na´ve to believe 
that people who can not otherwise program well can program concurrent 
systems brilliantly in Ada 2005.

The language AspectAda was not created because its creators are satisfied 
with Ada. At least one different concurrent object oriented language has 
been created which supposedly can not have inheritance anomalies.

N. C. P. Gloster