Title
Global abstraction-safe marshalling with hash types.
Abstract
Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is necessary for writing distributed programs, exchanging values via network byte-streams or persistent stores. In this paper we combine the two, developing compile-time and run-time semantics for marshalling, that guarantee abstraction-safety between separately-built programs. We obtain a namespace for abstract types that is global, i.e. meaningful between programs, by hashing module declarations. We examine the scenarios in which values of abstract types are communicated from one program to another, and ensure, by constructing hashes appropriately, that the dynamic and static notions of type equality mirror each other. We use singleton kinds to express abstraction in the static semantics; abstraction is tracked in the dynamic semantics by coloured brackets. These allow us to prove preservation, erasure, and coincidence results. We argue that our proposal is a good basis for extensions to existing ML-like languages, pragmatically straightforward for language users and for implementors.
Year
DOI
Venue
2003
10.1145/944746.944714
Special Interest Group on Programming Languages
Keywords
Field
DocType
ML,abstract types,distributed programming,hashing,lambda calculus,marshalling,modules,programming languages,serialisation,singleton kinds,type theory
Lambda calculus,Programming language,Abstraction,Computer science,Type erasure,Type theory,Marshalling,Theoretical computer science,Namespace,Hash function,Semantics
Journal
Volume
Issue
ISSN
38
9
0362-1340
Citations 
PageRank 
References 
13
0.74
22
Authors
4
Name
Order
Citations
PageRank
James J. Leifer124412.67
Gilles Peskine2131.08
Peter Sewell3144668.16
Keith Wansbrough416510.56