The architecture of Montana: an open and extensible programming environment with an incremental C++ compiler

Montana is an open, extensible integrated programming environment for C++ that supports incremental compilation and linking, a persistent code cache called a CodeStore, and a set of programming interfaces to the CodeStore for tool writers. CodeStore serves as a central source of information for compiling, browsing, and debugging. CodeStore contains information about both the static and dynamic structure of the compiled program. This information spans files, macros, declarations, function bodies, templates and their instantiations, program fragment dependencies, linker relocation information, and debugging information.Montana allows the compilation process to be extended and modified [11]. Montana has been used as the basis of a number of tools [1,7], and is also used as the infrastructure of a production compiler, IBM's Visual Age C++ 4.0 [8].

[1]  Thomas Reps,et al.  The synthesizer generator: a language for constructing language-based editors , 1988 .

[2]  Danny Soroker,et al.  Extension mechanisms in Montana , 1997, Proceedings of the Eighth Israeli Conference on Computer Systems and Software Engineering.

[3]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[4]  Harold Ossher,et al.  Specifying Subject-Oriented Composition , 1996, Theory Pract. Object Syst..

[5]  James B. Bladen,et al.  Ada semantic interface specification (ASIS) , 1991, TRI-Ada '91.

[6]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[7]  Monica S. Lam,et al.  Maximizing Multiprocessor Performance with the SUIF Compiler , 1996, Digit. Tech. J..

[8]  David F. Bacon,et al.  Fast static analysis of C++ virtual function calls , 1996, OOPSLA '96.

[9]  Jennifer Hamilton Montana Smart Pointers: They're Smart, and They're Pointers , 1997, COOTS.

[10]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..