Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Theoretical Computer Science - Special issue: Fourth workshop on mathematical foundations of programming semantics, Boulder, CO, May 1988
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Dynamic typing in a statically typed language
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
Program fragments, linking, and modularization
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Definition of Standard ML
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Programming Language
The Java Language Specification
The Java Language Specification
A type system for higher-order modules
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Oz Programming Model (Extended Abstract)
Euro-Par '95 Proceedings of the First International Euro-Par Conference on Parallel Processing
CONCUR '96 Proceedings of the 7th International Conference on Concurrency Theory
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Generativity and dynamic opacity for abstract types
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Dynamic rebinding for marshalling and update, with destruct-time ?
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
Acute: high-level programming language design for distributed computation
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Understanding and evolving the ml module system
Understanding and evolving the ml module system
The standard ML basis library
Trends in Functional Programming: Volume 5
Trends in Functional Programming: Volume 5
A concurrent lambda calculus with futures
Theoretical Computer Science - Applied semantics
A concurrent lambda calculus with futures
Theoretical Computer Science - Applied semantics
Observational Semantics for a Concurrent Lambda Calculus with Reference Cells and Futures
Electronic Notes in Theoretical Computer Science (ENTCS)
Oz/K: a kernel language for component-based open programming
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Status report: hot pickles, and how to serve them
ML '07 Proceedings of the 2007 workshop on Workshop on ML
Mixin' up the ML module system
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Dynamic Translucency with Abstraction Kinds and Higher-Order Coercions
Electronic Notes in Theoretical Computer Science (ENTCS)
Mixin’ Up the ML Module System
ACM Transactions on Programming Languages and Systems (TOPLAS)
Backpack: retrofitting Haskell with interfaces
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Despite its powerful module system, ML has not yet evolved for the modern world of dynamic and open modular programming, to which more primitive languages have adapted better so far. We present the design and semantics of a simple yet expressive firstclass component system for ML. It provides dynamic linking in a type-safe and type-flexible manner, and allows selective execution in sandboxes. The system is defined solely by reduction to higherorder modules plus an extension with simple module-level dynamics, which we call packages. To represent components outside processes we employ generic pickling. We give a module calculus formalising the semantics of packages and pickling.