TY - GEN
T1 - Separate compilation for standard ML
AU - Appel, Andrew W.
AU - MacQueen, David B.
PY - 1994
Y1 - 1994
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=0027928774&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0027928774&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:0027928774
SN - 089791662X
T3 - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
SP - 13
EP - 23
BT - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
PB - Publ by ACM
T2 - Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI)
Y2 - 20 June 1994 through 24 June 1994
ER -