Related articles |
---|
Source code editor using GCC zhengz@parawireless.com (zheng zhihua) (2006-11-20) |
Re: Source code editor using GCC gneuner2@comcast.net (George Neuner) (2006-11-22) |
From: | George Neuner <gneuner2@comcast.net> |
Newsgroups: | comp.compilers |
Date: | 22 Nov 2006 21:17:16 -0500 |
Organization: | Compilers Central |
References: | 06-11-090 |
Keywords: | GCC, editor, bibliography |
Posted-Date: | 22 Nov 2006 21:17:16 EST |
On 20 Nov 2006 23:05:26 -0500, "zheng zhihua"
<zhengz@parawireless.com> wrote:
>I am a freshman, help wanted! who can tell me about the architecture
>of the gcc.And how to pick infomation about the source code.I want to
>use gcc to build up a smart source code editor
>
>thanks a lot
>
>[There is quite a lot of documentation on GCC at http://gcc.gnu.org,
>but I think it would be a better idea to find out how other souce code
>editors work. GCC's parsers are intended to run through a program
>once and parse the whole program, while in an editor you're frequently
>reparsing little bits of the program as the user makes changes. -John]
I agree with John that GCC is the wrong way to go because of its batch
orientation. Smart code editors identify and delimit the minimum edit
unit and minimum compilation unit (these are my terms). The edit unit
is usually a line, an expression or statement; the compilation unit
may be a line, an expression, a function or the whole program
depending on the location of the edit. At each change, the current
edit unit is reparsed and the current compilation unit is reanalyzed.
It is possible to use standard parsing/lexing/analysis tools to create
such an environment, but you have to be creative with them because
most tools assume a batch environment - you need to adjust their
notions of "batch" to suit your needs. The major effort will be
creating/maintaining a flexible analysis environment and determining
how much of the program needs to be reanalyzed due to each editing
change.
Here are a few references to get you started.
"Practical Algorithms for Incremental Software Development
Environments"
http://citeseer.ist.psu.edu/wagner98practical.html
"Efficient and Flexible Incremental Parsing"
http://www.cs.berkeley.edu/Research/Projects/harmonia/papers/twagner-parsing.pdf
"The design of parsers for incremental language processors"
http://portal.acm.org/citation.cfm?id=805153
"Incremental Semantic Evaluation in Language-based Editors"
http://cs.ubc.ca/rr/proceedings/spe91-95/spe/vol22/issue2/spe750dk.pdf
"Incremental analysis of real programming languages"
http://portal.acm.org/citation.cfm?id=258920&coll=portal&dl=ACM&CFID=5041012&CFTOKEN=44363383
Good luck.
George
Return to the
comp.compilers page.
Search the
comp.compilers archives again.