Standards Update, X3J16: C++

Peter Collinson pc at hillside.co.uk
Wed Jun 26 05:03:47 AEST 1991


Submitted-by: pc at hillside.co.uk (Peter Collinson)

USENIX Standards Watchdog Committee
Stephen R. Walli <stephe at usenix.org>, Report Editor
Report on X3J16: C++


Mike Vilot <mjv at objects.mv.com> reports on the March, 1991 meeting in
Nashua, New Hampshire:

Current Status

The ANSI X3J16 committee began its second year of technical meetings.
As expected, the work grew more detailed, with the Core Language and
Environment working groups being the focus of most of X3J16's work.

March meeting

Digital Equipment hosted the Nashua meeting.  The week's major
activities focused on understanding the myriad details of the proposed
clarifications and changes to the current working document.

X3J16's sub-groups focused on the key topics listed in the goals
statement developed at the March, 1990 meeting.  They worked by
electronic mail between meetings, and reported their progress.

International Concerns

Steve Carter, of Bellcore, presented the major international
concerns.

Due to the concerns expressed at the November meeting about conversion
to a Type I (international) X3 process, Steve came prepared with
material explaining the implications of the change.  To all
appearances, the change seems benign to the technical work of the
committee.  The change would have the positive effect of getting
international involvement.  It has the potential to delay the
development of the standard, due to the need to synchronize U.S.  and
ISO balloting.

The full X3J16 committee almost decided to vote to adopt the change,
but ran out of the quorum necessary to pass the motion on Friday
morning.

Editorial

Jonathan Shopiro, of AT&T, presented the Editorial group's
work.

The most significant change from the November version was the
incorporation of the exception handling proposal.  Jonathan also
described an editorial change that simplified the treatment of names
and name lookup, merging the concepts that had previously been treated
under the topics of dominance and name hiding.  Martin O'Riordan, of
Microsoft, questioned whether this was a purely editorial change, or a
change to the language semantics.  Martin and others reqeusted time to
look over the change before agreeing to it.

As I mentioned last time, the person who volunteered to edit the
Rationale document has not been heard from since last summer.  Susan
Waggoner, of USWest, has taken on that responsibility.

Formal Syntax

James Roskind, an independent consultant, presented the work
of the Formal Syntax group.

The bulk of the discussion concerned a proposal by Reg Charney of
Program Conversions, Inc. to rename the non- terminals in the
grammar.  Although there was much discussion about the virtues of
regularizing the naming versus the evils of gratuitous changes, the
committee decided, in the end, to adopt the proposal.

Eric Krohn, of Bellcore, presented the syntactic ambiguities involving
the newly-adopted throw-expression syntax for exceptions.  The
discussion clarified the issues, and a final resolution is likely next
meeting.

Tom Penello, of Metaware, gave an interesting presentation on the
inherent problems with ambiguous grammars.  He established the fact
that an ambigous grammar makes the question of a conforming
implementation undecidable.  He also illustrated that arbitrary rules
to resolve grammatical ambiguities has the side-effect of rejecting
valid programs.

He then went on to explain the syntactic ambiguities of the template
syntax, arising from the conflict over using the ``>'' symbol as both
a relational operator and a template argument list delimiter.
Although he proposed a grammar rewrite that solved the problem, he
decided not to recommend it on aesthetic grounds.

There seems to be an appreciation within X3J16 as a whole for the
technical issues involved in making the grammar correct.  There also
seems to be a sentiment in favor of letting the semantic rules settle
most of the complex issues.

Core Language

Andy Koenig, of AT&T, presented the Core Language group's
work.

Document X3J16/91-0005 describes the group's discussion about the
linkage of typedef names and anonymous classes.  The group decided it
was an Environmental issue, and handed it off to the Environment group.

The group discussed objects created under a condition, and resolved to
consider those objects governed by an implicit block scope, as if the
programmer had explicitly supplied a compound statement.  Discussion
is summarized in X3J16/91- 0021.

Document 91-0019 covers the discussion of lifetimes for temporary
objects created by the compiler.  This issue has not reached closure,
although the issues were clarified.

Environment

Peter Chapin, of Vermont Technical College, presented the
work of the Environment group.

Document X3J16/91-0011 describes the group's discussion about C/C++
compatibility issues.  This discussion is continuing.

The group discussed at length the one definition rule - enforcing the
rule that a program must have exactly one definition for a given
function, even in the presence of multiple inclusions of inline
functions and the potential need for the compiler to generate such
functions out of line.  Document X3J16/91-0024 summarizes the
discussion.

There is a proposal to include a section in the standard on required
warnings.  Laura Yaker, now at Mentor Graphics, presented some ideas
of the sorts of things that might be considered as required warnings.
The discussion indicated that this is a difficult issue to
standardize, since there is so much variation in environments and
implementations.  This ongoing discussion is summarized in
X3J16/91-0014.

Another ongoing discussion concerns static initialization order for
objects in different translation units.  Document X3J16/91-0012
summarizes this discussion.

There was some discussion on specifying translation limits in the
standard.  The discussion seemed to generate more heat than light, and
nothing was decided.

Lastly, the linkage of types discussion continues, and is summarized
in X3J16/91-0023.  Peter described several alternate rules to insure
type-safe linkage of types.  A central issue is whether the linkage
specification is part of the type.  There are interesting arguments
for and against this.

Libraries

I presented the Library group's work.

There has been some progress on formulating proposals for submission
to X3J16.  Aron Insinga of DEC presented his proposal to apply
templates to the definition of the standard string class.  His
progress has been slowed by the lack of an available implementation
supporting templates.

Steve Clamage of TauMetric presented proposed resolutions for almost
all of the compatibility issues regarding the C library.  Most of the
small type insecurities can be handled in a reasonably straightforward
manner.  There are more substantial issues regarding signals,
exceptions and the facilities provided by longjmp().

The iostreams proposal continues to receive comment.  Many of the
UNIX-specific issues have been removed.  Addressing these concerns
raised an interesting point - should the C++ standard adopt the
practice of the C standard, in describing only that certain 'types'
exist, or should it describe them as classes and specify their
required operations?  There was some concern that describing classes
would be inefficient, but other concerns that the vague wording
without a class description would introduce too much variability among
implementations.

Language Extensions

Bjarne Stroustrup, of AT&T, presented the work of the
Extensions group.

The group is working through a long list of proposals for changes to
the language.  A significant number of them came from the Core
language group, due to an evaluation of what Andy Koenig calls for
changing the wording of the standard would have the effect of changing
the meaning of the language.

The current list of language extension proposals includes overloading
of the ``.'' operator, a proposal for handling national character set
issues with digraphs and new keywords, and the adoption of the
``inherited'' keyword (as in Apple's implementation).

The largest issue lurking in the Extensions category is the addition
of support for run-time type information.  There will be much
discussion on this topic over the next months.

C Compatibility

Tom Plum, of Plum-Hall, presented the work of the C
Compatibility group.

The group continued its investigation of the vocabulary differences
between C and C++.  They decided to categorize their efforts into
groups, covering the language, environment, and library.  One likely
outcome of their work will be a proposal to adopt the same model of
sequence points used by X3J11.

Next events

The next three X3J16 1991 meetings (and their hosts) will
be:

   o June 17-21, Lund Sweden (Lund Institute of Technology)

   o November 11-15, Toronto Canada (IBM)

   o March 1992, Austin TX (TI)

Zortech announced plans to host one of the other two 1992 meetings in
London.

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
   + 1 (408)447-5279
   FAX: +1 (408)447-4924
   email dmitryhpda at hplabs.hp.com

Vice Chair:
   William M. Miller
   Glockenspiel, Ltd
   P.O.Box 366
   Sudbury,
   MA 01776-0003
   +1 (508)443-5779
   email wmmiller at cup.portal.com
























































Volume-Number: Volume 24, Number 24



More information about the Comp.std.unix mailing list