Related articles |
---|
looking for a c++ -> c++ parser izrailev@cs.utah.edu (1998-11-15) |
Re: looking for a c++ -> c++ parser lindahl@cs.virginia.edu (1998-11-19) |
Re: looking for a c++ -> c++ parser emarsden@mail.dotcom.fr (Eric Marsden) (1998-11-19) |
Re: looking for a c++ -> c++ parser chase@world.std.com (David Chase) (1998-11-24) |
From: | David Chase <chase@world.std.com> |
Newsgroups: | comp.compilers |
Date: | 24 Nov 1998 22:19:16 -0500 |
Organization: | NaturalBridge LLC |
References: | 98-11-088 98-11-097 |
Keywords: | C++, tools |
Greg Lindahl wrote:
> ... the EDG parser source
> is available free for non-commercial use, and I heard (a while ago)
> about a project by Kathy Lindlan <klindlan@cs.uoregon.edu> to build
> some stuff with the EDG parser which allows tool builders to do
> interesting things to parsed C++ programs. Details are at:
>
> http://www.cs.uoregon.edu/~klindlan/
>
> I'm not sure if there is a tool which takes her IL and outputs C++,
> but that part doesn't look hard.
It is true that the EDG parser can be used for these purposes; a
couple of years ago I worked for a company that used it in just that
way (inserting instrumentation into the intermediate tree, emitting
C++ source, then compiling that).
Solving the "emit valid C++ from an intermediate IL" can be a good
deal harder than you seem to think. Several bright people with years
of experience fiddling with the EDG tools did get it to apparently
work; there was some back-and-forth with the guys at EDG, and it is
probably easier now than it was when the project began. It is not
100% possible to add arbitrary instrumentation to C++; in some cases,
"there's no there there" to insert your instrumentation into (this
depends somewhat upon whether you wish to retain compatibility with
uninstrumented code; if you relax that restriction, life gets a good
deal easier). Lack of a well-defined evaluation order for C++
expressions (as in, ONE legal evaluation order) makes life tough, as
does different back-end compilers' ideas about temporary lifetimes (it
helps when they get it right). Buggy, and varying (that should go
away soon now that there's a standard, right?) C++ compilers were a
substantial headache.
The result of this experience building C++ debugging tools was a
substantial enthusiasm for Java :-).
David Chase
NaturalBridge LLC
(former employee of CenterLine Software)
Return to the
comp.compilers page.
Search the
comp.compilers archives again.