Transparent Modules with Fully Syntactic SignaturesLast modified: Tue Mar 14 19:29:41 2000 GMT. AuthorsZhong ShaoAbstractML-style modules are valuable in the development and maintenance of large software systems, unfortunately, none of the existing languages support them in a fully satisfactory manner. The official SML'97 Definition does not allow higher-order functors, so a module that refers to externally defined functors cannot accurately describe its import interface. MacQueen and Tofte extended SML'97 with fully transparent higher-order functors, but their system does not have a type-theoretic semantics thus fails to support fully syntactic signatures. The systems of manifest types and translucent sums support fully syntactic signatures but they may propagate fewer type equalities than fully transparent functors. This paper presents a module calculus that supports both fully transparent higher-order functors and fully syntactic signatures (and thus true separate compilation). We give a simple type-theoretic semantics to our calculus and show how to compile it into an Fomega-like lambda calculus extended with existential types. Published
|
Copyright © 1996-2025 The FLINT Group
<flint at cs dot yale dot edu>
Yale University Department of Computer Science |
colophon |