Abstract | ||
---|---|---|
In most programming languages, type abstraction is guaranteed by syntactic scoping in a single program, but is not preserved by marshalling during distributed communication. A solution is to generate hash types at compile time that consist of a fingerprint of the source code implementing the data type. These hash types can be tupled with a marshalled value and compared efficiently at unmarshall time to guarantee abstraction safety. In this paper, we extend a core calculus of ML-like modules, functions, distributed communication, and hash types, to integrate structural subtyping, user-declared subtyping between abstract types, and bounded existential types. Our semantics makes two contributions: (1) the explicit tracking of the interaction between abstraction boundaries and subtyping; (2) support for user-declared module upgrades with propagation of the resulting subhashing relation throughout the network during communication. We prove type preservation, progress, determinacy, and erasure for our system. |
Year | DOI | Venue |
---|---|---|
2006 | 10.1145/1159803.1159841 | Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming |
Keywords | Field | DocType |
abstract data type,subtyping,distributed computing,programming language,data type,source code,type theory | Programming language,Abstraction,Source code,Compile time,Computer science,Marshalling,Type theory,Theoretical computer science,Data type,Hash function,Subtyping | Conference |
Volume | Issue | ISSN |
41 | 9 | 0362-1340 |
ISBN | Citations | PageRank |
1-59593-309-3 | 6 | 0.48 |
References | Authors | |
11 | 2 |
Name | Order | Citations | PageRank |
---|---|---|---|
pierremalo denielou | 1 | 270 | 12.11 |
James J. Leifer | 2 | 244 | 12.67 |