| Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages, San Francisco, CA, January 1990. |
....foundations for modular program ning provide valuable insights into the desigu of more powerful, and more effective module systems for practical programming languages. During the past decade, there have been several attempts to provide type theoretic foundations for modular program ming [23, 16, 21, 7, 22, 27, 1, 6, 13, 15, 3]. The main propos als can be distinguished by their use of different constructs to describe the type of a module. To illustrate these alternatives, suppose that we wish to construct a complex number Permission to make digital hard copies of all or part of this material for personal or classroom ....
....implementation M of type Complex r for the complex number operators. The ability to include type components in modules makes this approach very powerful too powerful in fact to permit compile time type checking without careful restrictions and extensions to ensure a suitable phase distinction [7] and to support features like sharing [14] Even then, it is still not possible to support true separate compilation [2] or to use modules as firstclass wlues [22, 12] Manifest types (transluscent sums) 6, 13] are an attempt to bridge the gap between the weak and strong sum approaches ....
[Article contains additional citation context not shown here]
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Conference record of the Seventeenth Annual AUM Symposium on Principles of Programming Latguages, pages 341-354, San Francisco, CA, January 1990.
....to translate ML modules to TAL object files. However the problem with this approach is that it leads to two di#erent models of linking: 1. At the source language level, linking is based on applying parameterized modules. Higher order parameterized modules may be useful for separate compilation [16,15,18,24,19], but there are still problems with supporting recursive modules [8] as are found in Java and C) 2. At the assembly language level, linking is based on a type safe version of the Unix ld command. Circular imports present no problem at this level, but much of the sophistication of the type ....
.... discussion than that presented here, is invited to consult [12] The TMAL type system is based on the linking calculus # , itself intended as a compilation target language This should not be confused with the phase distinction between compile time and run time explicated by Harper et al. [16]. The phase distinction between link time and run time does not exist in the latter calculus, because it translates module level linking (functor application) to core language operations (function application and generic instantiation) for a more high level module language # , described in ....
[Article contains additional citation context not shown here]
Robert Harper, John Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Proceedings of ACM Symposium on Principles of Programming Languages, pages 341--354. Association for Computing Machinery, 1990.
....separate assembly process. Some HOT module systems fail to scale essential features of the core language to modules, which re stricts the ways that modules can be defined, e.g. ML 1 does This research was partially supported by a NSF Graduate Research Fellowship, NSF grants CCI 9619756, CDA 9713032, and CCR 9708957, and a Texas ATP grant. ML stands for SML or CAML. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee proded that copies are not made or distributed for profit or commercial advantage end that copies beer ....
....in ML) For all three sections, we only consider those parts of the core language that are immediately relevant to units. The rigorous description of the unit language, including its type structures and semantics, relies on well known type checking and rewriting techniques for Scheme and ML [6, 13, 31] In the rewriting model of evaluation, the set of program expressions is partitioned into a set of values and a set of non values. Evaluation is the process of rewriting a non value expression within a program to an equivalent expression, repeating this process until the whole program is ....
[Article contains additional citation context not shown here]
HARPER, R., MITCHELL, J., AND MOGGI, E. Higher- order modules and the phase distinction. In Proc. ACM Symposium on Principles of Programming Languages (1990), pp. 341-354.
....tion. On the technical side, the main originality of this paper is the use of what is essentially weak sums [19, 7] albeit with an unusual elimination construct: the dot notation [4, 5] instead of the strong sums that have been used so far to give type theoretic accounts of SML modules [15, 12, 13]. Unlike strong sums, weak sums provide direct support for type abstraction and make the phase distinction [13] obvious. The well known inadequacies of weak sums for modular programming [15] are here offset by the extra expressiveness brought by manifest types. The present paper also puts ....
.... 7] albeit with an unusual elimination construct: the dot notation [4, 5] instead of the strong sums that have been used so far to give type theoretic accounts of SML modules [15, 12, 13] Unlike strong sums, weak sums provide direct support for type abstraction and make the phase distinction [13] obvious. The well known inadequacies of weak sums for modular programming [15] are here offset by the extra expressiveness brought by manifest types. The present paper also puts forward a new way to account for type sharing, distinct from the heavy graph based formalism of the Definitzon [11, 17, ....
[Article contains additional citation context not shown here]
R. Harper, J. C. Mitchell, and E. Moggi. Higher-order modules and the phase distinction. In 17th symposium Principles of Programming Languages, pages 341-354. ACM Press, 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages, San Francisco, CA, January 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order Modules and the Phase Distinction. In 17th Symposium on Principles of Programming Languages, pages 341--354, 1990. 41
No context found.
Harper, R., Mitchell, J. C., and Moggi, E. 1990. Higher-order modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages. San Francisco, 341--354.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In 17th Symposium on Principles of Programming Languages, pages 341--354, 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order Modules and the Phase Distinction. In 17th Symposium on Principles of Programming Languages, pages 341--354, 1990. 41
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In POPL '90.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages, pages 341--354, San Francisco, January 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In POPL '90.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages, San Francisco, CA, January 1990.
No context found.
R. Harper, J. C. Mitchell, and E. Moggi. Higher-order modules and the phase distinction. In Symposium on Principles of Programming Languages, 1990.
No context found.
R. Harper, J. C. Mitchell, and E. Moggi. Higher-order modules and the phase distinction. In Symposium on Principles of Programming Languages, 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In 17th Symposium on Principles of Programming Languages, pages 341--354, 1990.
....The role of a signature is to allow the programmer to hide type information selectively. The mechanism for controlling type propagation is translucency [11, 14] with transparency and opacity as limiting cases. Phase Separation ML like module systems enjoy a phase separation property [12] stating that every module is separable into a static part, consisting of type information, and a dynamic part, consisting of executable code. To obtain fully expressive higher order modules and to support abstraction, it is essential to build this phase separation principle into the definition of ....
....classes of pure modules. For example, in Harper and Lillibridge s first class module system [11] only syntactic values are considered pure. In Leroy s second class module calculi [14, 15] purity is limited to the syntactic category of paths. In Harper et al. s early phase distinction calculus [12] all modules are deemed to be pure, but no means of abstraction is provided. Abstraction via Sealing The principal means for defining abstract types is sealing, written M: #. Sealing M with # prevents any client of M from depending on the identities of any type components specified ....
[Article contains additional citation context not shown here]
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higherorder modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages, San Francisco, CA, January 1990.
....module We propose to address this question in the framework of type theory, which has proved to be a powerful tool for both the design and implementation of module systems. We conduct our analysis in the context of the phase distinction module formalism introduced by Harper, Mitchell, and Moggi [11] (hereafter, HMM) augmented to support recursive types and functions, and to support type defmitions in signatures [9, 13] The phase distinction calculus provides a rigorous account of higher order modules (supporting hierarchy and parameterization) in a framework that makes explicit the ....
....describe below. We will treat the elaboration process informally, illustrating it by examples. Details of how elaboration may be formalized in a gen eral setting appear in Harper and Stone [12] Our internal language is an extension of the phase distinction calculus of Harper, Mitchell, and Moggi [11]. The language consists of two main components: a core calculus, a predicative variant of Girard s F, and a structure calculus, extending the core language with a primitive module construct without explicit mecha nisms for hierarchy (e.g. substructures) or parameterization (e.g. functors) ....
[Article contains additional citation context not shown here]
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages, San IYancisco, California, Jan- uary 1990.
....A; Dependent record kinds classifying records of type constructors and dependent function kinds classifying functions mapping type constructors to type construc tors 1; A sub kinding relation induced by S(A) T. Modules are represented in this language using a phasesplitting interpretation [8, 19]. The main idea is that modules can be split into type constructor and a term, while signatures split in a parallel way into a kind and a type. Singleton kinds are used to model definitions and type sharing specifications in module signatures, dependent record kinds model the type parts of ....
....niles corresponding to the extensionahty rules: F Ea:K .K F ] A: Ha:K .K F I rA: K F, K ] Aa: K F ] r2A: arlA K F A: Ha:K .K F A: Y.a:K . K Similar rules have previously appeared in the literature, induding the non standard structure typing rule of Harper, Mitchell, and Moggi [8], the VALUE rules of Harper and Lillibridge s translucent sums [7] the strengthening operation of Leroy s manifest type system [10] and the self rule of Leroy s applicative functors [11] In the presence of singletons, these rules give constructors more precise kinds than would otherwise be ....
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order Modules and the Phase Distinction. In 17th Symposium on Principles o) e Programming Lan- guages, pages 341-354, 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Conf. Rec. 17th Ann. ACM Symp. Principles of Programming Languages, 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-Order Modules and the Phase Distinction. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 341--354. January 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 341--354, San Francisco, January 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higherorder modules and the phase distinction. In Proceedings of the 17th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 341--354. ACM Press, 1989.
No context found.
Robert Harper, John Mitchell, and Eugenio Moggi. Higherorder modules and the phase distinction. In Paul Hudak, editor, Proceedings of ACM Symposium on Principles of Programming Languages, pages 341--354. Association for Computing Machinery, 1990.
No context found.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth ACM Symposium on Principles of Programming Languages, pages 341#354, San Francisco, January 1990.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC