home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!linus!linus.mitre.org!linus!mbunix!emery
- From: emery@Dr_No.mitre.org (David Emery)
- Subject: Re: Review of "Ada & C++: A Business Case Analysis
- In-Reply-To: mccall@mksol.dseg.ti.com's message of Thu, 30 Jul 1992 15:59:50 GMT
- Message-ID: <EMERY.92Jul30143758@Dr_No.mitre.org>
- Sender: news@linus.mitre.org (News Service)
- Nntp-Posting-Host: dr_no.mitre.org
- Organization: The Mitre Corp., Bedford, MA.
- References: <2329@nic.cerf.net> <1992Jul28.213215.25806@fcom.cc.utah.edu>
- <1992Jul29.074434.21817@lmpsbbs.comm.mot.com> <2408@nic.cerf.net>
- <1992Jul30.084243.1137@lmpsbbs.comm.mot.com>
- <1992Jul30.155950.10725@mksol.dseg.ti.com>
- Distribution: usa
- Date: Thu, 30 Jul 1992 19:37:58 GMT
- Lines: 40
-
- Some people have found that the Ada tasking model does not match their
- needs based on their way of doing real-time concurrent programming.
- For many distributed systems (with and without stringent real-time
- coordination), the Ada tasking model works just fine.
-
- Ada 9X will provide additional data oriented synchronization alternatives
- to rendezvous (which is procedural-oriented). But, Ada83's rendezvous
- is a classic RPC paradigm, and RPC's are very widely used in
- distributed systems (if not real-time systems).
-
- The problem that many people seem to have with Ada tasking is that it
- doesn't match their view of the their problem. I'm not convinced that
- they're trying to force their particular approach to their problem
- onto the language as a whole.
-
- In retrospect, some parts of Ada tasking proved to be less useful than
- expected. The Ada mapping of interrupt to task entries, and the
- associated syntax for this, is one example of a language mechanism
- that hasn't been real useful. Another part of tasking that cost both
- implementation time and runtime, with limited utility, is task
- termination.
-
- But, the basic notion of tasking, that of concurrent units of work, is
- a very close mapping to other similar abstractions, most notably the
- threads work now ongoing for C in POSIX. POSIX Threads provides
- different synchronization facilities than the rendezvous (and they
- look a lot more like 9X protected objects), but the basic model is the
- same.
-
- As I've said before, Ada tasking provides a very useful model for
- distributed/parallel computation. It's been a lot of fun watching the
- C community discover things like deadlocks, race conditions, etc.
- Part of the fun comes in listening to them try to describe something
- in C/Threads/Mutexes/Condition Variables/etc that you can describe to
- the average Ada programmer with 5 lines of Ada. (e.g. "A Deadlock
- occurs when a task indirectly tries to call one of its own entries."
- Try describing a similar condition using Mutexes and Condition
- Variables!)
-
- dave
-