Affiliation:
1. Princeton University
2. AT&T Bell Laboratories
Abstract
Languages that support abstraction and modular structure, such as Standard ML, Modula, Ada, and (more or less) C++, may have deeply nested dependency hierarchies among source files. In ML the problem is particularly severe because ML's powerful parameterized module (functor) facility entails dependencies among implementation modules, not just among interfaces.
To efficiently compile individual modules in such languages, it is useful (in ML, necessary) to infer, digest, and cache the static environment resulting from the compilation of each module.
Our system provides a simple model of compilation and linkage that supports incremental recompilation (a restricted form of separate compilation) with type-safe linkage. This model is made available to user programs in the form of a set of internal compiler modules, a feature that we call the “visible compiler”. The chief client of this interface is the IRM incremental recompilation manager from CMU.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference22 articles.
1. The cost of selective recompilation and environment processing
2. Amber Benson and Gary Aitken. OI Programmer's Guide June 1993. Amber Benson and Gary Aitken. OI Programmer's Guide June 1993.
3. Luca Cardelli. Program fragments linking and modularization April 1993. Luca Cardelli. Program fragments linking and modularization April 1993.
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The history of Standard ML;Proceedings of the ACM on Programming Languages;2020-06-12
2. piCoq: parallel regression proving for large-scale verification projects;Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis;2018-07-12
3. Generic Pickling and Minimization;Electronic Notes in Theoretical Computer Science;2006-03
4. Hierarchical modularity;ACM Transactions on Programming Languages and Systems;1999-07
5. An applicative module calculus;TAPSOFT '97: Theory and Practice of Software Development;1997