[comp.lang.c++] analysis 'challenges' in C++ request

twagner@baobab.Berkeley.EDU (Tim Wagner) (05/26/91)

I'm involved in working on an interactive programming language
environment, and we would like to support C++.  Thus, I'm looking
for a concise, technical list of "front-end challenges" in C++.

For instance: non-LALR(1)ness of some syntactical constructs,
              required feedback between type-checking and lexing,
              worse-than-linear type-checking problems,
              known semantic ambiguities or problems, etc.

In other words, whatever would give one a headache when writing the
front-end of a compiler.  Obvious C problems (like, the PP is a separate
language) may be assumed to be understood.

I would appreciate hearing from people involved in compiler or
development environment work that have come across problems that
would be relevant (and solutions!).

-------More details below here.  Casual inspectors may skip.----------

The system in question has the following machinery:

(A) A lexical analyzer based on FLEX, but without the ability to
    use yymore() or REJECT.
(B) An LALR(1) parser generator.
(C) A Prolog-like semantic analysis "constraint maintainance" program.

These operate in phases as listed, which is one of the biggest drawbacks
(since, e.g., type-id's require feedback from the semantic analysis
stage to the lexical one in most batch compilers for C and C++).
The system operates incrementally (thus, full lexical stream,
parse tree, and symtab are maintained at all times).

Particular problems that I know of so far include the ARM-mentioned need
for a backtracking parser to disambiguate "T(id)" definitions/expressions
and the above-mentioned feedback loop.  I'm also interested in suggestions
for incorporating the preprocessor stage, while preserving its correct
semantics and allowing incremental updates to both the C++ code and
the preprocessor directives.

Repliers may assume I can read the ARM, understand the Dragon book, etc.,
but not that I have deeply analyzed every article ever posted to
this newsgroup.  As always, thanx in advance.

-T. Wagner-
------------->twagner@baobab.Berkeley.EDU
------------->Computer Science Dept.
------------->U. C. Berkeley