home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / v21 / 174.a < prev    next >
Internet Message Format  |  1990-12-05  |  13KB

  1. From std-unix-request@uunet.uu.net  Wed Oct  3 11:21:46 1990
  2. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  3.     id AA18463; Wed, 3 Oct 90 11:21:46 -0400
  4. Posted-Date: 3 Oct 90 14:58:36 GMT
  5. Received: by cs.utexas.edu (5.64/1.76) 
  6. From: jsh@usenix.org (Jeffrey S. Haemer)
  7. Newsgroups: comp.std.unix
  8. Subject: Standards Update, X3J16: C++
  9. Message-Id: <571@usenix.ORG>
  10. Sender: jsq@usenix.ORG
  11. Reply-To: std-unix@uunet.uu.net
  12. Organization: USENIX Standards Watchdog Committee
  13. X-Submissions: std-unix@uunet.uu.net
  14. Date: 3 Oct 90 14:58:36 GMT
  15. To: std-unix@uunet.uu.net
  16.  
  17. Submitted-by: jsh@usenix.org (Jeffrey S. Haemer)
  18.  
  19.            An Update on UNIX1-Related Standards Activities
  20.  
  21.                            October 3, 1990
  22.  
  23.                  USENIX Standards Watchdog Committee
  24.  
  25.           Jeffrey S. Haemer <jsh@usenix.org>, Report Editor
  26.  
  27. X3J16: C++
  28.  
  29. Mike Vilot <mjv@objects.mv.com> reports on the July meeting in
  30. Seattle, Washington:
  31.  
  32. Standard C++?
  33.  
  34. The C++ programming language has been gaining popularity at a
  35. remarkable rate (an informal estimate is that the C++ population
  36. doubles every nine months).  One reaction to the growing popularity
  37. has been a call to stabilize the language's definition, and achieve
  38. some consistency across implementations.  C++ is popular enough that
  39. larger corporations are considering adopting it as an officially
  40. endorsed development language -- but some cannot make such a move
  41. unless the language is defined by a standard.
  42.  
  43. For these and other reasons, the ANSI secretariat agreed to establish
  44. the X3J16 committee to formulate a standard for C++.  Dmitry Lenkov,
  45. of HP, made the official proposal, and serves as chairman of the
  46. committee.  To date, X3J16 has met three times: an organizational
  47. meeting last December, the first technical meeting in March to get
  48. organized, and a meeting in July to really get started.
  49.  
  50. The December meeting, in Washington D.C., was purely administrative:
  51. over 50 attendees received lectures and tons of paper on X3 rules and
  52. procedures.  The highlight of the day was an invited presentation by
  53. Bjarne Stroustrup on ``the spirit of C++.'' The transcript is
  54. available as committee document X3J16/90-0022 or from Greg Comeau at
  55. Comeau Computing, 91-34 120th Street, Richmond Hill, NY 11418, (718)
  56. 849-2355.
  57.  
  58. March meeting
  59.  
  60. AT&T hosted the meeting in New Jersey.  Most of the week was spent on
  61. administrative matters, while the group got organized and accustomed
  62. to The Bureaucratic Way.  Since most of the members are engineers, the
  63. highlight of the week was the evening technical sessions on
  64. implementing exception handling for C++.  (The week was sort of a
  65.  
  66. __________
  67.  
  68.  1. UNIXTM is a Registered Trademark of UNIX System Laboratories in
  69.     the United States and other countries.
  70.  
  71. October 3, 1990 Standards Update                            X3J16: C++
  72.  
  73.  
  74.                 - 2 -
  75.  
  76. mini-Usenix conference, as most members had gone without a substantial
  77. C++ gathering since the October '88, Denver conference.)
  78.  
  79. The week's major activities were discussing and preparing a goals
  80. document, describing the committee's activities and priorities.
  81.  
  82. Goals
  83.  
  84. Here is a brief outline of the goals document, which is available as
  85. X3J16/90-0023:
  86.  
  87.   1.  Base documents: C++ Reference Manual, ANSI C (ANS X3.159-1989),
  88.       ISO C when available.
  89.  
  90.   2.  Standardize syntax and semantics of the language as a token
  91.       sequence without the presence of preprocessing directives.
  92.  
  93.   3.  Define and standardize a minimum set of C++ libraries, their
  94.       contents, and interfaces.
  95.  
  96.   4.  Standardize elements of a C++ environment.
  97.  
  98.   5.  Consider proposed major changes: parameterized types and
  99.       exceptions.
  100.  
  101.   6.  Ensure that the standard is suitable for the international
  102.       community.
  103.  
  104.   7.  Ensure a very high level of compatibility with ANSI C.
  105.  
  106.   8.  Establish coordinating liaisons with X3J11 (ANSI C) and
  107.       Numerical C Extensions Group.
  108.  
  109.   9.  Produce two deliverables: draft proposed standard and rationale.
  110.  
  111.  10.  Priorities:
  112.  
  113.          - clear & unambiguous
  114.  
  115.          - C++ reference manual
  116.  
  117.          - other base documents
  118.  
  119.          - consistency
  120.  
  121.          - user/implementer experience
  122.  
  123.          - portability, efficiency, expressiveness
  124.  
  125.          - ease of implementation (including translation to C)
  126.  
  127. October 3, 1990 Standards Update                            X3J16: C++
  128.  
  129.  
  130.                 - 3 -
  131.  
  132. There was some confusion over the multiple base documents.  Most
  133. members had seen the AT&TT C++ version 2.0 reference manual, but in
  134. preparation for standardization, the language and its reference manual
  135. had suffered a number of subsequent, small changes.  AT&T made the 2.1
  136. reference manual available to X3J16; it was essentially the text of
  137. the book The Annotated C++ Reference Manual by Margaret Ellis and
  138. Bjarne Stroustrup published by Addison-Wesley (minus the annotations).
  139.  
  140. My naive suggestion to remove the ANSI C standard as a base document
  141. in favor of a single base provoked the most intense and emotional
  142. discussion of the week.  At stake was compatibility between C++ and C.
  143.  
  144. While most members of X3J16 feel that the existence of a separate
  145. committee implies the standardization of a new language, some former
  146. members of X3J11, which just finished the C standard, want to
  147. eliminate any and all incompatibilities with C.  (There was even a
  148. threat to sabotage the C++ standard in balloting if they are not
  149. removed.)
  150.  
  151. This issue is obviously important and has two sides.  Make your
  152. preferences known to the committee.  For detailed reference material,
  153. both ``C++: As Close as Possible to C -- But No Closer,'' (Bjarne
  154. Stroustrup and Andy Koenig, The C++ Report, 1(7), 1989) and Chapter 18
  155. of The Annotated C++ Reference Manual document and explain differences
  156. and incompatibilities between the languages as they stand today.
  157.  
  158. Focusing on a language without preprocessing directives continues the
  159. de-emphasis of the C preprocessor.  This is particularly favored by
  160. C++ vendors looking into more powerful development environments.
  161. [Editor: Admittedly, improper preprocessor use can sink us in deep and
  162. dirty bath water, but let's make sure to save the baby.  When writing
  163. portable C, I personally find #ifdefs extremely valuable; I suspect
  164. they will remain valuable in C++, and I would hate to see the working
  165. group neglect this valuable porting tool.]
  166.  
  167. The libraries effort includes asking what to do about the ANSI-C
  168. library, and investigating what can be standardized in a more C++-like
  169. approach.
  170.  
  171. The environment work addresses the linking and executing of C++ code
  172. with non-C++ code (i.e., linkage and program execution models), rather
  173. than development environment tools.
  174.  
  175. There are thousands of suggested ``improvements'' proposed as
  176. extensions to C++, but there is consensus on two named in the goals
  177. document: parameterized types and exception handling.  Their proposals
  178. are detailed, and both have been implemented (in some form) in a few
  179. C++ implementations.
  180.  
  181. The emphasis on international concerns reflects the lessons learned
  182. from the difficulties of C standardization.  X3J16 has some fences to
  183.  
  184. October 3, 1990 Standards Update                            X3J16: C++
  185.  
  186.  
  187.                 - 4 -
  188.  
  189. mend, particularly in the international community.  Rather than
  190. waiting until the last minute to spring a standard on the ISO, the C++
  191. committee is involving itself with the international community right
  192. from the start.
  193.  
  194. July meeting
  195.  
  196. Microsoft hosted the second, Seattle meeting.  Sub-groups focused on
  197. the key topics listed in the goals statement began work at the March
  198. meeting, and reported their progress in Seattle.
  199.  
  200. International Concerns
  201.      Steve Carter, of Bellcore, presented the major International
  202.      Concerns (particularly character sets and formal specification)
  203.      and asked the other groups to work on these issues.  He also
  204.      suggested various sites overseas where future X3J16 meetings
  205.      could help cooperation with international standardization
  206.      efforts.
  207.  
  208. Editorial
  209.      Jonathan Shopirio, of AT&T, presented the Editorial group's
  210.      proposal for organizing and formatting the standard.  Jon is also
  211.      working on an abstract machine model, and a way to define the
  212.      semantics in the standard precisely and consistently.
  213.  
  214. Formal Syntax
  215.      James Roskind, an independent consultant, presented the work of
  216.      the Formal Syntax group.  He has developed (and published on the
  217.      net) a yacc-able grammar for C++, and is concerned about
  218.      ambiguities in the the language.  Most of the discussion was
  219.      spent trying to discover whether C++ can (or should) be made
  220.      LALR(1).
  221.  
  222. Core Language
  223.      Andy Koenig, of AT&T, presented the Core Language group's work.
  224.      Initially, they identified and classified difficulties in the
  225.      working document.
  226.  
  227. Environment
  228.      John Vasta, of HP, presented the work of the Environment group.
  229.      A key issue addressed by this group is the interaction of C++
  230.      with other programming languages.  Among the important topics are
  231.      linkage of C++ and non-C++ translation units, especially the
  232.      construction and destruction of static C++ objects.
  233.  
  234. Libraries
  235.      I presented the Library group's work.  There were many
  236.      suggestions, from both inside and outside of the committee.
  237.      (Interested outside suggesters were James Coggins, Keith Gorlen,
  238.      and Doug Lea, who have each developed large C++ libraries.) A few
  239.      people noted similarity with topics covered by other standards
  240.  
  241. October 3, 1990 Standards Update                            X3J16: C++
  242.  
  243.  
  244.                 - 5 -
  245.  
  246.      (notably POSIX).  Initially, the library group will focus on a
  247.      few commonly-used components.  Parameterized types and exception
  248.      handling will significantly effect the way we design libraries in
  249.      C++.
  250.  
  251. Language Extensions
  252.      Bjarne Stroustrup, of AT&T, presented the work of the Extensions
  253.      group, which was by far the most active.  The technical sessions
  254.      presented experience with implementation and use of the template
  255.      facility.
  256.  
  257.      The most active and emotional debate of the week was on exception
  258.      handling, discussing the proposal outlined by Andy Koenig and
  259.      Bjarne Stroustrup in their paper ``Exception Handling for C++''
  260.      presented at the Usenix C++ conference in April.  Martin
  261.      O'Riordan, of Microsoft, and Mike Miller, of Glockenspiel,
  262.      presented arguments in favor of extending the current proposal
  263.      (which defines termination semantics for exceptions) to include
  264.      resumption semantics.  Andy and Bjarne explained their reasons
  265.      for not including resumption -- the most important was the
  266.      complexity and cost of implementation.
  267.  
  268.      To their credit, the group worked hard to find a proposal that
  269.      provided both kinds of exceptions with acceptably small
  270.      time/space overhead.  However, at the end of the week, Bjarne
  271.      declared the debate deadlocked, and refused to impose his
  272.      proposal while substantial disagreement remained.  This is
  273.      another topic where you should make your opinions heard.
  274.  
  275. C Compatibility
  276.      Mike Miller presented the work of the C Compatibility group.  Tom
  277.      Plum, of Plum-Hall, produced a list of every section of the C++
  278.      reference manual that was not C.  Much of the group's near-term
  279.      activity will be devoted to explaining the many items on the
  280.      list.
  281.  
  282. The Seattle meeting produced tangible progress on the language
  283. standard.  X3J16 voted to accept the proposed document outline and
  284. format.  They also agreed to incorporate the template proposal (the
  285. text from Chapter 14 of The Annotated Reference Manual, minus the
  286. annotations -- it was literally a scissors-and-tape job).  We hope C++
  287. vendors will regard templates as now officially in the language, and
  288. provide users an opportunity to work with this feature.
  289.  
  290. Next events
  291.  
  292. A few substantial issues lie ahead.  The next meeting should see some
  293. resolution on the exception proposal.  We should see some progress on
  294. the review of language ambiguities and inconsistencies, and have some
  295. idea of how difficult it will be to ANSIfy the document.  We should
  296. also see some specific proposals on library contents.  The most
  297.  
  298. October 3, 1990 Standards Update                            X3J16: C++
  299.  
  300.  
  301.                 - 6 -
  302.  
  303. substantial will be a simplified version of iostreams by Jerry Schwarz
  304. (now at Stardent, formerly at AT&T).
  305.  
  306. Our target date for delivering a draft standard is the end of 1992.
  307. X3J16 meets three times per year.  The next three meetings (and their
  308. hosts) will be:
  309.  
  310.    + November 12-26, Cupertino CA (Hewlett Packard)
  311.  
  312.    + March 11-15, Nashua NH (Digital)
  313.  
  314.    + June 17-21, Lund Sweden (Lund Institute of Technology)
  315.  
  316. Membership on an X3 committee is open to any individual or
  317. organization with expertise and material interest in the topic
  318. addressed by the committee.  The cost for membership is $250.  Contact
  319. the chair or vice chair for details.
  320.  
  321. Chair: Dmitry Lenkov
  322. HP California Language Lab
  323. 19447 Pruneridge Avenue MS 47 LE
  324. Cupertino, CA  95014
  325. (408)447-5279
  326. FAX (408)447-4924
  327. email dmitry%hpda@hplabs.hp.com
  328.  
  329. Vice Chair: William M.  Miller
  330. Glockenspiel, Ltd
  331. P.O. Box 366
  332. Sudbury, MA  01776-0003
  333. (508)443-5779
  334. email wmmiller@cup.portal.com
  335.  
  336. October 3, 1990 Standards Update                            X3J16: C++
  337.  
  338. Volume-Number: Volume 21, Number 174
  339.  
  340.