Related articles |
---|
History of code completion gswork@mailcity.com (2001-10-20) |
Re: History of code completion lex@cc.gatech.edu (Lex Spoon) (2001-10-21) |
Re: History of code completion neelk@alum.mit.edu (2001-10-23) |
Re: History of code completion jsgray@acm.org (Jan Gray) (2001-10-23) |
Re: History of code completion lhp+news@toft-hp.dk (2001-10-23) |
Re: History of code completion gzw@home.com (Geoff Wozniak) (2001-10-27) |
Re: History of code completion marcov@toad.stack.nl (Marco van de Voort) (2001-11-05) |
Re: History of code completion genew@mail.ocis.net (2001-11-08) |
Re: History of code completion binary@eton.powernet.co.uk (Richard Heathfield) (2001-11-08) |
[4 later articles] |
From: | neelk@alum.mit.edu (Neelakantan Krishnaswami) |
Newsgroups: | comp.compilers,comp.programming |
Date: | 23 Oct 2001 20:20:43 -0400 |
Organization: | Compilers Central |
References: | 01-10-091 01-10-112 |
Keywords: | tools, history |
Posted-Date: | 23 Oct 2001 20:20:43 EDT |
On 21 Oct 2001 21:30:13 -0400, Lex Spoon <lex@cc.gatech.edu> wrote:
>
> This style is used in VB and Smalltalk, and it's used in syntax
> highlighters in, e.g., Emacs. The syntax highlighters in particular
> often rely on heuristics instead of doing strictly correct parses, at
> least if the current buffer has unsyntactic code in it. I honestly
> don't know whether this is due to theoretical limitations or just due
> to a lack of effort by the authors.
Tim Wagner's PhD thesis at Berkeley in 1997 was the design of an
incremental GLR parser that could identify and efficiently manage
syntactically incorrect regions in parts of the parse tree:
http://www.cs.berkeley.edu/~twagner/TR.ps.Z
This was done as part of the Ensemble (now Harmonia) project for
building extensible development environments. There was also work on
incremental lexing done, of course.
Once you have the parse tree, the next question is what kinds of
semantic analysis you can offer the user. Online typechecking is
obvious, and even highlighting which compiler optimizations are
feasible with a given code structure is possible.
I've only really seen two example of this. First is the refactoring
browser. The other one is the Dylan compiler from Functional Objects,
which has an IDE that highlights method calls to identify which method
dispatches the compiler is able to optimize away. This lets you
visually identify whether you have a lots of dynamic dispatching in a
critical inner loop, for example. It's very neat.
Neel
Return to the
comp.compilers page.
Search the
comp.compilers archives again.