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
occur[..]".
The proposals in that "TOPLAS" paper were discarded in favor of what was
chosen for Ada 2005, and it is written in
WWW.Ada-Auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00345.TXT?rev=1.25
"[..]
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.
Regards,
N. C. P. Gloster
|