Persistence and type abstraction
Data types and persistence
The definition of Standard ML
Higher-order modules and the phase distinction
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Systems programming with Modula-3
Systems programming with Modula-3
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principal signatures for higher-order program modules
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the type structure of standard ML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Manifest types, modules, and separate compilation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-theoretic approach to higher-order modules with sharing
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tag-free garbage collection using explicit type parameters
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Signatures for a network protocol stack: a systems application of Standard ML
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Applicative functors and fully transparent higher-order modules
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Higher-order functors with transparent signatures
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using parameterized signatures to express modular structure
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Flexible representation analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Typed cross-module compilation
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Using dependent types to express modular structure
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
The Definition of Standard ML
A Semantics for Higher-Order Functors
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
An Applicative Module Calculus
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Fully reflexive intensional type analysis
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Modular mixin-based inheritance for application frameworks
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Type-Safe linking with recursive DLLs and shared libraries
ACM Transactions on Programming Languages and Systems (TOPLAS)
A type system for higher-order modules
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Intensional analysis of quantified types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Sound and Complete Elimination of Singleton Kinds
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Sharing in Typed Module Assembly Language
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Inlining as staged computation
Journal of Functional Programming
Sound and complete elimination of singleton kinds
ACM Transactions on Computational Logic (TOCL)
Lightweight Static Capabilities
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
A module system independent of base languages
Proceedings of the 1st Workshop on Modules and Libraries for Proof Assistants
Engineering higher-order modules in SML/NJ
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
A syntactic type system for recursive modules
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
ML-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 [26] 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 [19, 20] and translucent sums [12] 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 Fω-like λ-calculus extended with existential types.