home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / lang / ada / 2244 < prev    next >
Encoding:
Text File  |  1992-07-30  |  2.8 KB  |  58 lines

  1. Newsgroups: comp.lang.ada
  2. 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
  3. From: emery@Dr_No.mitre.org (David Emery)
  4. Subject: Re: Review of "Ada & C++: A Business Case Analysis
  5. In-Reply-To: mccall@mksol.dseg.ti.com's message of Thu, 30 Jul 1992 15:59:50 GMT
  6. Message-ID: <EMERY.92Jul30143758@Dr_No.mitre.org>
  7. Sender: news@linus.mitre.org (News Service)
  8. Nntp-Posting-Host: dr_no.mitre.org
  9. Organization: The Mitre Corp., Bedford, MA.
  10. References: <2329@nic.cerf.net> <1992Jul28.213215.25806@fcom.cc.utah.edu>
  11.     <1992Jul29.074434.21817@lmpsbbs.comm.mot.com> <2408@nic.cerf.net>
  12.     <1992Jul30.084243.1137@lmpsbbs.comm.mot.com>
  13.     <1992Jul30.155950.10725@mksol.dseg.ti.com>
  14. Distribution: usa
  15. Date: Thu, 30 Jul 1992 19:37:58 GMT
  16. Lines: 40
  17.  
  18. Some people have found that the Ada tasking model does not match their
  19. needs based on their way of doing real-time concurrent programming.
  20. For many distributed systems (with and without stringent real-time
  21. coordination), the Ada tasking model works just fine.
  22.  
  23. Ada 9X will provide additional data oriented synchronization alternatives
  24. to rendezvous (which is procedural-oriented).  But, Ada83's rendezvous
  25. is a classic RPC paradigm, and RPC's are very widely used in
  26. distributed systems (if not real-time systems).  
  27.  
  28. The problem that many people seem to have with Ada tasking is that it
  29. doesn't match their view of the their problem.  I'm not convinced that
  30. they're trying to force their particular approach to their problem
  31. onto the language as a whole.  
  32.  
  33. In retrospect, some parts of Ada tasking proved to be less useful than
  34. expected.  The Ada mapping of interrupt to task entries, and the
  35. associated syntax for this, is one example of a language mechanism
  36. that hasn't been real useful.  Another part of tasking that cost both
  37. implementation time and runtime, with limited utility, is task
  38. termination.  
  39.  
  40. But, the basic notion of tasking, that of concurrent units of work, is
  41. a very close mapping to other similar abstractions, most notably the
  42. threads work now ongoing for C in POSIX.  POSIX Threads provides
  43. different synchronization facilities than the rendezvous (and they
  44. look a lot more like 9X protected objects), but the basic model is the
  45. same.  
  46.  
  47. As I've said before, Ada tasking provides a very useful model for
  48. distributed/parallel computation.  It's been a lot of fun watching the
  49. C community discover things like deadlocks, race conditions, etc.
  50. Part of the fun comes in listening to them try to describe something
  51. in C/Threads/Mutexes/Condition Variables/etc that you can describe to
  52. the average Ada programmer with 5 lines of Ada.  (e.g.  "A Deadlock
  53. occurs when a task indirectly tries to call one of its own entries."
  54. Try describing a similar condition using Mutexes and Condition
  55. Variables!) 
  56.  
  57.                 dave
  58.