home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / ada / 3622 < prev    next >
Encoding:
Text File  |  1992-12-11  |  3.1 KB  |  73 lines

  1. Newsgroups: comp.lang.ada
  2. Path: sparky!uunet!noc.near.net!inmet!spock!stt
  3. From: stt@spock.camb.inmet.com (Tucker Taft)
  4. Subject: Re: FORTRAN bug(was Re: C++ vs. Ada -- Is Ada loosing?)
  5. Message-ID: <1992Dec11.210404.2480@inmet.camb.inmet.com>
  6. Sender: news@inmet.camb.inmet.com
  7. Nntp-Posting-Host: spock
  8. Organization: Intermetrics Inc, Cambridge MA
  9. References: <1992Dec9.060218.23940@seas.gwu.edu> <1992Dec11.132942.24054@mksol.dseg.ti.com> <1992Dec11.163811@lglsun.epfl.ch>
  10. Date: Fri, 11 Dec 1992 21:04:04 GMT
  11. Lines: 60
  12.  
  13. In article <1992Dec11.163811@lglsun.epfl.ch> 
  14.   nebbe@lglsun.epfl.ch (Robb Nebbe) writes:
  15.  
  16. > . . .
  17. >The problem with Ada is that it is a lot more difficult to do code generation
  18. >in my head ;-) Some of you will scoff but my education is in computer
  19. >engineering (thus hardware) and there is a tremendous amount a satisfaction in
  20. >knowing what it is that I am telling the hardware to do and not just in the
  21. >abstract sense.
  22. >
  23. >When I program in Ada this sense of satisfaction is just not there. Programming
  24. >in C is sort of like making a piece of furniture yourself from scratch and
  25. >programming in Ada is like buying a kit. 
  26.  
  27. I tend to agree with this assessment of Ada 83.
  28.  
  29. One of our goals for Ada 9X has been to give system programmers
  30. back this feeling of satisfaction, so that you can do "code generation
  31. in your head" for most Ada constructs.  In other words,
  32. you can predict about how many machine instructions (and
  33. generally which ones ;-) will be generated for each
  34. construct in your program.  For a real-time embedded language,
  35. this seems particulary important.
  36.  
  37. For example, an allocator in Ada 9X will be defined in terms
  38. of a call on an appropriate Allocate procedure, user-replacable on
  39. an access-type by access-type basis.
  40. Similarly, a call on an instantiation of Unchecked_Deallocation
  41. becomes a call on an appropriate user-replacable Deallocate routine,
  42. preceded if appropriate by a call on a user-defined Finalize routine.
  43.  
  44. We have also provided the ability to create an access value
  45. designating a declared variable, so long as it is marked "aliased,"
  46. coupled with more control over by-reference vs. by-copy
  47. parameter passing.
  48.  
  49. We also allow access to subprograms, allowing a pointer to
  50. a procedure to be passed for the purpose of a call-back,
  51. iteration over a data structure, etc.  This avoids some of
  52. the heaviness and somewhat more-difficult-to-predict performance
  53. of generics for certain simple situations.
  54.  
  55. Finally, the protected type feature is designed to allow
  56. the construction of synchronization primitives with predictable
  57. performance, including things like mailboxes, queues,
  58. counting semaphores, etc.
  59.  
  60. Given some of these features, we hope that Ada 9X
  61. will provide both the safety and high-level aspects
  62. of Ada 83, but also the more "down-to-earth" feel appropriate for
  63. systems programming, when you want it.
  64.  
  65. We would appreciate any specific suggestions about this 
  66. issue of "control" or "predictability" of implementation
  67. model, as it relates to systems programming in Ada 9X.
  68.  
  69. S. Tucker Taft     stt@inmet.com
  70. Ada 9X Mapping/Revision Team
  71. Intermetrics, Inc.
  72. Cambridge, MA  02138
  73.