home *** CD-ROM | disk | FTP | other *** search
- Submitted-by: jsh@usenix.org (Jeffrey S. Haemer)
-
- An Update on UNIX1-Related Standards Activities
-
- October 3, 1990
-
- USENIX Standards Watchdog Committee
-
- Jeffrey S. Haemer <jsh@usenix.org>, Report Editor
-
- X3J16: C++
-
- Mike Vilot <mjv@objects.mv.com> reports on the July meeting in
- Seattle, Washington:
-
- Standard C++?
-
- The C++ programming language has been gaining popularity at a
- remarkable rate (an informal estimate is that the C++ population
- doubles every nine months). One reaction to the growing popularity
- has been a call to stabilize the language's definition, and achieve
- some consistency across implementations. C++ is popular enough that
- larger corporations are considering adopting it as an officially
- endorsed development language -- but some cannot make such a move
- unless the language is defined by a standard.
-
- For these and other reasons, the ANSI secretariat agreed to establish
- the X3J16 committee to formulate a standard for C++. Dmitry Lenkov,
- of HP, made the official proposal, and serves as chairman of the
- committee. To date, X3J16 has met three times: an organizational
- meeting last December, the first technical meeting in March to get
- organized, and a meeting in July to really get started.
-
- The December meeting, in Washington D.C., was purely administrative:
- over 50 attendees received lectures and tons of paper on X3 rules and
- procedures. The highlight of the day was an invited presentation by
- Bjarne Stroustrup on ``the spirit of C++.'' The transcript is
- available as committee document X3J16/90-0022 or from Greg Comeau at
- Comeau Computing, 91-34 120th Street, Richmond Hill, NY 11418, (718)
- 849-2355.
-
- March meeting
-
- AT&T hosted the meeting in New Jersey. Most of the week was spent on
- administrative matters, while the group got organized and accustomed
- to The Bureaucratic Way. Since most of the members are engineers, the
- highlight of the week was the evening technical sessions on
- implementing exception handling for C++. (The week was sort of a
-
- __________
-
- 1. UNIXTM is a Registered Trademark of UNIX System Laboratories in
- the United States and other countries.
-
- October 3, 1990 Standards Update X3J16: C++
-
-
- - 2 -
-
- mini-Usenix conference, as most members had gone without a substantial
- C++ gathering since the October '88, Denver conference.)
-
- The week's major activities were discussing and preparing a goals
- document, describing the committee's activities and priorities.
-
- Goals
-
- Here is a brief outline of the goals document, which is available as
- X3J16/90-0023:
-
- 1. Base documents: C++ Reference Manual, ANSI C (ANS X3.159-1989),
- ISO C when available.
-
- 2. Standardize syntax and semantics of the language as a token
- sequence without the presence of preprocessing directives.
-
- 3. Define and standardize a minimum set of C++ libraries, their
- contents, and interfaces.
-
- 4. Standardize elements of a C++ environment.
-
- 5. Consider proposed major changes: parameterized types and
- exceptions.
-
- 6. Ensure that the standard is suitable for the international
- community.
-
- 7. Ensure a very high level of compatibility with ANSI C.
-
- 8. Establish coordinating liaisons with X3J11 (ANSI C) and
- Numerical C Extensions Group.
-
- 9. Produce two deliverables: draft proposed standard and rationale.
-
- 10. Priorities:
-
- - clear & unambiguous
-
- - C++ reference manual
-
- - other base documents
-
- - consistency
-
- - user/implementer experience
-
- - portability, efficiency, expressiveness
-
- - ease of implementation (including translation to C)
-
- October 3, 1990 Standards Update X3J16: C++
-
-
- - 3 -
-
- There was some confusion over the multiple base documents. Most
- members had seen the AT&TT C++ version 2.0 reference manual, but in
- preparation for standardization, the language and its reference manual
- had suffered a number of subsequent, small changes. AT&T made the 2.1
- reference manual available to X3J16; it was essentially the text of
- the book The Annotated C++ Reference Manual by Margaret Ellis and
- Bjarne Stroustrup published by Addison-Wesley (minus the annotations).
-
- My naive suggestion to remove the ANSI C standard as a base document
- in favor of a single base provoked the most intense and emotional
- discussion of the week. At stake was compatibility between C++ and C.
-
- While most members of X3J16 feel that the existence of a separate
- committee implies the standardization of a new language, some former
- members of X3J11, which just finished the C standard, want to
- eliminate any and all incompatibilities with C. (There was even a
- threat to sabotage the C++ standard in balloting if they are not
- removed.)
-
- This issue is obviously important and has two sides. Make your
- preferences known to the committee. For detailed reference material,
- both ``C++: As Close as Possible to C -- But No Closer,'' (Bjarne
- Stroustrup and Andy Koenig, The C++ Report, 1(7), 1989) and Chapter 18
- of The Annotated C++ Reference Manual document and explain differences
- and incompatibilities between the languages as they stand today.
-
- Focusing on a language without preprocessing directives continues the
- de-emphasis of the C preprocessor. This is particularly favored by
- C++ vendors looking into more powerful development environments.
- [Editor: Admittedly, improper preprocessor use can sink us in deep and
- dirty bath water, but let's make sure to save the baby. When writing
- portable C, I personally find #ifdefs extremely valuable; I suspect
- they will remain valuable in C++, and I would hate to see the working
- group neglect this valuable porting tool.]
-
- The libraries effort includes asking what to do about the ANSI-C
- library, and investigating what can be standardized in a more C++-like
- approach.
-
- The environment work addresses the linking and executing of C++ code
- with non-C++ code (i.e., linkage and program execution models), rather
- than development environment tools.
-
- There are thousands of suggested ``improvements'' proposed as
- extensions to C++, but there is consensus on two named in the goals
- document: parameterized types and exception handling. Their proposals
- are detailed, and both have been implemented (in some form) in a few
- C++ implementations.
-
- The emphasis on international concerns reflects the lessons learned
- from the difficulties of C standardization. X3J16 has some fences to
-
- October 3, 1990 Standards Update X3J16: C++
-
-
- - 4 -
-
- mend, particularly in the international community. Rather than
- waiting until the last minute to spring a standard on the ISO, the C++
- committee is involving itself with the international community right
- from the start.
-
- July meeting
-
- Microsoft hosted the second, Seattle meeting. Sub-groups focused on
- the key topics listed in the goals statement began work at the March
- meeting, and reported their progress in Seattle.
-
- International Concerns
- Steve Carter, of Bellcore, presented the major International
- Concerns (particularly character sets and formal specification)
- and asked the other groups to work on these issues. He also
- suggested various sites overseas where future X3J16 meetings
- could help cooperation with international standardization
- efforts.
-
- Editorial
- Jonathan Shopirio, of AT&T, presented the Editorial group's
- proposal for organizing and formatting the standard. Jon is also
- working on an abstract machine model, and a way to define the
- semantics in the standard precisely and consistently.
-
- Formal Syntax
- James Roskind, an independent consultant, presented the work of
- the Formal Syntax group. He has developed (and published on the
- net) a yacc-able grammar for C++, and is concerned about
- ambiguities in the the language. Most of the discussion was
- spent trying to discover whether C++ can (or should) be made
- LALR(1).
-
- Core Language
- Andy Koenig, of AT&T, presented the Core Language group's work.
- Initially, they identified and classified difficulties in the
- working document.
-
- Environment
- John Vasta, of HP, presented the work of the Environment group.
- A key issue addressed by this group is the interaction of C++
- with other programming languages. Among the important topics are
- linkage of C++ and non-C++ translation units, especially the
- construction and destruction of static C++ objects.
-
- Libraries
- I presented the Library group's work. There were many
- suggestions, from both inside and outside of the committee.
- (Interested outside suggesters were James Coggins, Keith Gorlen,
- and Doug Lea, who have each developed large C++ libraries.) A few
- people noted similarity with topics covered by other standards
-
- October 3, 1990 Standards Update X3J16: C++
-
-
- - 5 -
-
- (notably POSIX). Initially, the library group will focus on a
- few commonly-used components. Parameterized types and exception
- handling will significantly effect the way we design libraries in
- C++.
-
- Language Extensions
- Bjarne Stroustrup, of AT&T, presented the work of the Extensions
- group, which was by far the most active. The technical sessions
- presented experience with implementation and use of the template
- facility.
-
- The most active and emotional debate of the week was on exception
- handling, discussing the proposal outlined by Andy Koenig and
- Bjarne Stroustrup in their paper ``Exception Handling for C++''
- presented at the Usenix C++ conference in April. Martin
- O'Riordan, of Microsoft, and Mike Miller, of Glockenspiel,
- presented arguments in favor of extending the current proposal
- (which defines termination semantics for exceptions) to include
- resumption semantics. Andy and Bjarne explained their reasons
- for not including resumption -- the most important was the
- complexity and cost of implementation.
-
- To their credit, the group worked hard to find a proposal that
- provided both kinds of exceptions with acceptably small
- time/space overhead. However, at the end of the week, Bjarne
- declared the debate deadlocked, and refused to impose his
- proposal while substantial disagreement remained. This is
- another topic where you should make your opinions heard.
-
- C Compatibility
- Mike Miller presented the work of the C Compatibility group. Tom
- Plum, of Plum-Hall, produced a list of every section of the C++
- reference manual that was not C. Much of the group's near-term
- activity will be devoted to explaining the many items on the
- list.
-
- The Seattle meeting produced tangible progress on the language
- standard. X3J16 voted to accept the proposed document outline and
- format. They also agreed to incorporate the template proposal (the
- text from Chapter 14 of The Annotated Reference Manual, minus the
- annotations -- it was literally a scissors-and-tape job). We hope C++
- vendors will regard templates as now officially in the language, and
- provide users an opportunity to work with this feature.
-
- Next events
-
- A few substantial issues lie ahead. The next meeting should see some
- resolution on the exception proposal. We should see some progress on
- the review of language ambiguities and inconsistencies, and have some
- idea of how difficult it will be to ANSIfy the document. We should
- also see some specific proposals on library contents. The most
-
- October 3, 1990 Standards Update X3J16: C++
-
-
- - 6 -
-
- substantial will be a simplified version of iostreams by Jerry Schwarz
- (now at Stardent, formerly at AT&T).
-
- Our target date for delivering a draft standard is the end of 1992.
- X3J16 meets three times per year. The next three meetings (and their
- hosts) will be:
-
- + November 12-26, Cupertino CA (Hewlett Packard)
-
- + March 11-15, Nashua NH (Digital)
-
- + June 17-21, Lund Sweden (Lund Institute of Technology)
-
- Membership on an X3 committee is open to any individual or
- organization with expertise and material interest in the topic
- addressed by the committee. The cost for membership is $250. Contact
- the chair or vice chair for details.
-
- Chair: Dmitry Lenkov
- HP California Language Lab
- 19447 Pruneridge Avenue MS 47 LE
- Cupertino, CA 95014
- (408)447-5279
- FAX (408)447-4924
- email dmitry%hpda@hplabs.hp.com
-
- Vice Chair: William M. Miller
- Glockenspiel, Ltd
- P.O. Box 366
- Sudbury, MA 01776-0003
- (508)443-5779
- email wmmiller@cup.portal.com
-
- October 3, 1990 Standards Update X3J16: C++
-
- Volume-Number: Volume 21, Number 174
-
-