Constructing Compilers in a persistent environment

Traditionally compilers have been described as consisting of separate modules: the syntax analyser; lexical analyser; code generator etc. However, in practice modern compilers are rarely constructed in this manner. This may be because it is difficult to find the correct levels of abstraction necessary to build a compiler from components without losing efficiency. In this paper a set of modules are described which may be combined in various ways to provide a whole family of compilers. The family of compilers includes: batch compilers; interactive compilers; file based compilers and compilers that operate entirely within the persistent environment. The approach taken is that of plug-in components. The system facilitates language and architecture experiments by providing a framework in which modules may be interchanged and combined freely.

[1]  Ronald Morrison,et al.  Procedures as persistent data objects , 1985, TOPL.

[2]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974, SIGPLAN Symposium on Very High Level Languages.

[3]  William A. Wulf,et al.  HYDRA , 1974, Commun. ACM.

[4]  David S. Munro,et al.  Execution Strategies in Persistent Systems , 1987, POS.

[5]  John F. Wakerly,et al.  The programming language PASCAL , 1979, Microprocessors and microsystems.

[6]  Alan Dearle,et al.  Safe Browsing in a Strongly Typed Persistent Environment , 1988, Comput. J..

[7]  Richard Cooper,et al.  Constructing Database Systems in a Persistent Environment , 1987, VLDB.

[8]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[9]  Ronald Morrison,et al.  Recursive descent compiling , 1981 .

[10]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..