Re: Incremental compilation

wright@gefion.cs.rice.edu (Andrew Wright)
Thu, 23 Jan 1992 20:55:12 GMT

          From comp.compilers

Related articles
Incremental compilation whatis@gnu.ai.mit.edu (1992-01-23)
Re: Incremental compilation preston@dawn.cs.rice.edu (1992-01-23)
Re: Incremental compilation wright@gefion.cs.rice.edu (1992-01-23)
Re: Incremental compilation ltd@netcom.netcom.com (1992-01-24)
Incremental Compilation shure@sd.co.il (Alexander Rozenman) (1999-11-02)
Re: Incremental Compilation xenophon@irtnog.org (Matthew Economou) (1999-11-03)
Re: Incremental Compilation maratb@CS.Berkeley.EDU (Marat Boshernitsan) (1999-11-05)
Re: Incremental Compilation bowdidge@apple.com (Robert Bowdidge) (1999-11-16)
Re: Incremental Compilation jsgray@acm.org.nospam (Jan Gray) (1999-11-25)
| List of all articles for this month |
Newsgroups: comp.compilers
From: wright@gefion.cs.rice.edu (Andrew Wright)
Keywords: code, interpreter
Organization: Rice University, Houston
References: 92-01-081
Date: Thu, 23 Jan 1992 20:55:12 GMT

In article 92-01-081 whatis@gnu.ai.mit.edu (Steve Boswell) writes:
>I'm looking for references, information, etc. on incremental compilation.
>I don't mean makefiles -- the unit of compilation there is the file, and I
>wanted something smaller, like the lexical token.


I built a prototype compiler that operated in a manner like this a few years
ago. Since a source file consisted of a set of named definitions, I built
abstract syntax trees for each definition and sorted the definitions by
name, before comparing abstract syntax trees. Hence rearranging the order
of functions in a source file would cause no recompilation. One could also
imagine replacing local variables with deBruijn numbers before comparing,
and recompiling would then be independent of local names.


This was a small part of a more global approach to automatic separate
compilation. A program unit consisted of a set of source files that could
cross reference one another. It would not necessarily be possible to
recompile one file by itself---recompiling defininition "f" in file A might
require doing some work on definition "g" in file B, which might in turn
require doing some work on "h" in file A, etc.


This is a nice way to do incremental compilation, that is similar to the
built-in editor approach, without the editor.


Andrew Wright
Rice University
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.