Re: Incremental Compilation

Robert Bowdidge <bowdidge@apple.com>
16 Nov 1999 23:43:02 -0500

          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 |

From: Robert Bowdidge <bowdidge@apple.com>
Newsgroups: comp.compilers
Date: 16 Nov 1999 23:43:02 -0500
Organization: Apple Computer, Inc.
References: 99-11-015
Keywords: incremental

> I am looking for some sources about "Incremental Compilation".
> There are some software products used it
> (as Microsoft Compiler/Debugger, I guess).
>
> Where can I find some theory about this topic?


(Even though I no longer work for IBM, I can't seem to get away from
flogging their products...)


IBM's VisualAge C++ 4.0 compiler is a true incremental compiler,
recompiling C++ on a function-by-function basis. Both the
Smalltalk-like code browser and tools could access parsed versions of
the program for analysis or visualization by merely asking the
incremental compiler to hand over a parsed version of the program.
Unlike some previous attempts at incremental compilation, VisualAge
C++ kept source code in files rather than sucking it into a database.


Research papers on the compiler and environment give some details about
how incremental compilation can be done. Michale Karasick's paper is
probably the most relevant for you.


Nackman, L. R. (1997, December 1997). CodeStore and Incremental C++. Dr.
Dobb's Journal, p. 92-96. (overview of the product)


Karasick, M. (1998). The Architecture of Montana: An Open and Extensible
Programming Environment with an Incremental C++ Compiler. In Sixth
International Symposium on the Foundations of Software Engineering,
(pp. 131-142). Lake Buena Vista, FL. (architecture, research issues)


Soroker, D.,Karasick, M.,Barton, J., & Streeter, D. (1997). Extension
Mechanisms in Montana. In 8th Israeli Conference on Computer Systems and
Software (ICSS97) (hooks for changing compiler's behavior via external
tools)


Hamilton, J. (1997). Montana Smart Pointers: They're Smart, and They're
Pointers. In Conference on Object-Oriented Technologies and Systems,
(pp. 21-39). USENIX Association. (detailed description of AST-modifying
tool that runs during the compiler's optimization phase).


Microsoft's Visual C++ is not an incremental compiler. It does
precompile header files (which works well for large, infrequently
changing headers, but works less well for frequently changing class
libraries in large projects). However, I've seen reports that Microsoft
did develop an incremental compiler and code repository around 1990.
The compiler never saw the light of day, but some of its ideas did move
into Visual C++.


Hope this helps,


Robert


Post a followup to this message

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