Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Garbage collection in an uncooperative environment
Software—Practice & Experience
Higher-order modules and the phase distinction
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
A Web navigator with applets in Caml
Proceedings of the fifth international World Wide Web conference on Computer networks and ISDN systems
Safe kernel extensions without run-time checking
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
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
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
Design and implementation of a distributed virtual machine for networked computers
Proceedings of the seventeenth ACM symposium on Operating systems principles
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
A semantic model of types and machine instructions for proof-carrying code
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A certifying compiler for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Type-safe cast: (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Linkers and Loaders
The Definition of Standard ML
Java Virtual Machine Specification
Java Virtual Machine Specification
Certifying Compilation and Run-Time Code Generation
Higher-Order and Symbolic Computation
Scalable Certification for Typed Assembly Language
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
Alias Types for Recursive Data Structures
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Efficient Code Certification
Dynamic software updating
Modules, abstract types, and distributed versioning
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Active Networking Means Evolution (or Enhanced Extensibility Required)
IWAN '00 Proceedings of the Second International Working Conference on Active Networks
Evolution in Action: Using Active Networking to Evolve Network Support for Mobility
IWAN '02 Proceedings of the IFIP-TC6 4th International Working Conference on Active Networks
Sharing in Typed Module Assembly Language
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
An Abstract Model of Java Dynamic Linking and Loading
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Higher-Order Intensional Type Analysis
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Global abstraction-safe marshalling with hash types
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A declarative framework for adaptable applications in heterogeneous environments
Proceedings of the 2004 ACM symposium on Applied computing
MetaKlaim: a type safe multi-stage language for global computing
Mathematical Structures in Computer Science
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
ACM Transactions on Programming Languages and Systems (TOPLAS)
ML grid programming with ConCert
Proceedings of the 2006 workshop on ML
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type safe dynamic linking for JVM access control
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction
Journal of Functional Programming
A Design for Type-Directed Programming in Java
Electronic Notes in Theoretical Computer Science (ENTCS)
Typing unmarshalling without marshalling types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
We present the design and implementation of the first complete framework for flexible and safe dynamic linking of native code. Our approach extends Typed Assembly Language with a primitive for loading and typechecking code, which is flexible enough to support a variety of linking strategies, but simple enough that it does not significantly expand the trusted computing base. Using this primitive, along with the ability to compute with types, we show that we can program many existing dynamic linking approaches. As a concrete demonstration, we have used our framework to implement dynamic linking for a type-safe dialect of C, closely modeled after the standard linking facility for Unix C programs. Aside from the unavoidable cost of verification, our implementation performs comparably with the standard, untyped approach.