Separate compilation for standard ML

Andrew W. Appel, David B. MacQueen

Research output: Chapter in Book/Report/Conference proceedingConference contribution

16 Scopus citations

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.

Original languageEnglish (US)
Title of host publicationProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
PublisherPubl by ACM
Pages13-23
Number of pages11
ISBN (Print)089791662X
StatePublished - 1994
EventProceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI) - Orlando, FL, USA
Duration: Jun 20 1994Jun 24 1994

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Other

OtherProceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI)
CityOrlando, FL, USA
Period6/20/946/24/94

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Separate compilation for standard ML'. Together they form a unique fingerprint.

Cite this