Proc. of the international symposium on Semantics of data types
Proc. of the international symposium on Semantics of data types
A kernel language for abstract data types and modules.
Proc. of the international symposium on Semantics of data types
A semantics of multiple inheritance.
Proc. of the international symposium on Semantics of data types
Understanding Russell–a first attempt
Proc. of the international symposium on Semantics of data types
Programming in MODULA-2 (3rd corrected ed.)
Programming in MODULA-2 (3rd corrected ed.)
On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Abstraction and specification in program development
Abstraction and specification in program development
Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
An implementation of standard ML modules
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
An extension of standard ML modules with subtyping and inheritance
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Commentary on standard ML
Elements of functional programming
Elements of functional programming
Systems programming with Modula-3
Systems programming with Modula-3
Compiling with continuations
Principal signatures for higher-order program modules
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bounded quantification is undecidable
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming with intersection types and bounded polymorphism
Programming with intersection types and bounded polymorphism
Explicit polymorphism and CPS conversion
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '93 Proceedings of the 20th 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
Using dependent types to express modular structure
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Standard ML Signatures for a Protocol Stack
Standard ML Signatures for a Protocol Stack
An Informal Description of Russell
An Informal Description of Russell
Manifest types, modules, and separate compilation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Metalevel building blocks for modular systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
A type system for prototyping languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separate compilation for Standard ML
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Polymorphism and subtyping in interface
IDL '94 Proceedings of the workshop on Interface definition languages
Polymorphic type inference and abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
A type-based compiler for standard ML
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Proceedings of the first ACM SIGPLAN international conference on Functional programming
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
Semantics: the description of computational structures
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Flexible representation analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
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
Typed cross-module compilation
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Intensional polymorphism in type-erasure semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Type-safe linking and modular assembly language
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design of a class mechanism for Moby
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Static interpretation of modules
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Transparent modules with fully syntatic signatures
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Deciding type equivalence in a language with singleton kinds
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system for expressive security policies
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modules, abstract types, and distributed versioning
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular mixin-based inheritance for application frameworks
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Recursive structures for standard ML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Generic unification via two-level types and parameterized modules
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A formal specification of the Haskell 98 module system
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
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
A Calculus for Link-Time Compilation
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
First-Class Structures for Standard ML
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Mixin Modules in a Call-by-Value Setting
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
An Algebraic Framework for Separate Type-Checking
WADT '98 Selected papers from the 13th International Workshop on Recent Trends in Algebraic Development Techniques
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
A Basic Model of Typed Components
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
True Modules for Java-like Languages
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
On Variance-Based Subtyping for Parametric Types
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Dependently Typed Records for Representing Mathematical Structure
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Algebraic Structures and Dependent Records
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
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
Using, Understanding, and Unraveling the OCaml Language. From Practice to Theory and Vice Versa
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Equational Reasoning for Linking with First-Class Primitive Modules
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
First-class structures for standard ML
Nordic Journal of Computing
Programming methodology
Typed operational semantics for higher-order subtyping
Information and Computation
Global abstraction-safe marshalling with hash types
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A type system for well-founded recursion
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A theory of mixin modules: algebraic laws and reduction semantics
Mathematical Structures in Computer Science
A theory of mixin modules: basic and derived operators
Mathematical Structures in Computer Science
Journal of Functional Programming
Intensional polymorphism in type-erasure semantics
Journal of Functional Programming
Journal of Functional Programming
A survey of semantic description frameworks for programming languages
ACM SIGPLAN Notices
TIL: a type-directed, optimizing compiler for ML
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Two-level types and parameterized modules
Journal of Functional Programming
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Acute: high-level programming language design for distributed computation
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
An expressive language of signatures
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Mixin modules in a call-by-value setting
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Variant parametric types: A flexible subtyping scheme for generics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Recursive modules for programming
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
From structures and functors to modules and units
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
The missing link: dynamic components for ML
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Abstraction preservation and subtyping in distributed languages
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Type-safe distributed programming for OCaml
Proceedings of the 2006 workshop on ML
A separate compilation extension to standard ML
Proceedings of the 2006 workshop on ML
Extensional equivalence and singleton types
ACM Transactions on Computational Logic (TOCL)
Towards a mechanized metatheory of standard ML
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Logical Framework with Dependently Typed Records
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2003, Selected Papers
Sound and complete elimination of singleton kinds
ACM Transactions on Computational Logic (TOCL)
A type-theoretic interpretation of pointcuts and advice
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
A type system for recursive modules
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Acute: High-level programming language design for distributed computation
Journal of Functional Programming
Imperative LF Meta-Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Mixin' up the ML module system
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Proceedings of the ACM SIGPLAN workshop on Generic programming
The visitor pattern as a reusable, generic, type-safe component
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Dynamic Translucency with Abstraction Kinds and Higher-Order Coercions
Electronic Notes in Theoretical Computer Science (ENTCS)
Modeling abstract types in modules with open existential types
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compositional reasoning and decidable checking for dependent contract types
Proceedings of the 3rd workshop on Programming languages meets program verification
Explicit Contexts in LF (Extended Abstract)
Electronic Notes in Theoretical Computer Science (ENTCS)
Manifest Fields and Module Mechanisms in Intensional Type Theory
Types for Proofs and Programs
Making induction manifest in modular ACL2
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
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
Dependent record types revisited
Proceedings of the 1st Workshop on Modules and Libraries for Proof Assistants
A unified framework and a transparent name-space for the Coq module system
Proceedings of the 1st Workshop on Modules and Libraries for Proof Assistants
Mixin modules and computational effects
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
Principal type schemes for modular programs
ESOP'07 Proceedings of the 16th European conference on Programming
A logical framework with dependently typed records
TLCA'03 Proceedings of the 6th international conference on Typed lambda calculi and applications
Scala for generic programmers: Comparing haskell and scala support for generic programming
Journal of Functional Programming
Nested and dynamic contract boundaries
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
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
A core calculus for scala type checking
MFCS'06 Proceedings of the 31st international conference on Mathematical Foundations of Computer Science
Syntactic abstraction in component interfaces
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Parameterized modules for classes and extensible functions
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
A Logical Framework with Dependently Typed Records
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2003, Selected Papers
Mixin’ Up the ML Module System
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dependent Type Theory for Verification of Information Flow and Access Control Policies
ACM Transactions on Programming Languages and Systems (TOPLAS)
ICFP 2002: Contracts for higher-order functions
ACM SIGPLAN Notices - Supplemental issue
Hi-index | 0.00 |
The design of a module system for constructing and maintaining large programs is a difficult task that raises a number of theoretical and practical issues. A fundamental issue is the management of the flow of information between program units at compile time via the notion of an interface. Experience has shown that fully opaque interfaces are awkward to use in practice since too much information is hidden, and that fully transparent interfaces lead to excessive interdependencies, creating problems for maintenance and separate compilation. The “sharing” specifications of Standard ML address this issue by allowing the programmer to specify equational relationships between types in separated modules, but are not expressive enough to allow the programmer complete control over the propagation of type information between modules.These problems are addressed from a type-theoretic viewpoint by considering a calculus based on Girard's system F&ohgr;. The calculus differs form those considered in previous studies by relying exclusively on a new form of weak sum type to propagate information at compile-time, in contrast to approaches based on strong sums which rely on substitution. The new form of sum type allows for the specification of equational, as well as type and kind, information in interfaces. This provides complete control over the propagation of compile-time information between program units and is sufficient to encode in a straightforward way most users of type sharing specifications in Standard ML. Modules are treated as “first-class” citizens, and therefore the system supports higher-order modules and some object-oriented programming idioms; the language may be easily restricted to “second-class” modules found in ML-like languages.