In most programming languages, type abstraction is guaranteed by syntactic scoping in a single program, but is not preserved by mar-shalling during distributed communication. A solution is to gener-ate 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 unmar-shall time to guarantee abstraction safety. In this paper, we extend a core calculus of ML-like modules, functions, distributed com-munication, and hash types, to integrate structural subtyping, user-declared subtyping between abstract types, and bounded existen-tial types. Our semantics makes two contributions: (1) the explicit tracking of the interact...
Software developers often structure programs in such a way that different pieces of code constitute ...
Session types allow high-level specifications of structured patterns of communication, such as clien...
We outline the design and detail the implementation of a language extension for abstracting types an...
Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is ne...
Existing languages provide good support for typeful programming of standalone programs. In a distrib...
Existing ML-like languages guarantee type-safety, ensuring memory safety and protecting the invarian...
Nominal subtyping (or user-defined subtyping) and structural subtyping each have their own strengths...
C++ uses inheritance as a substitute for subtype polymorphism. We give examples where this makes the...
Consider a network of nodes running ML programs that ex hange data. How an data whi h has an abstra...
Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is ne...
What abstractions are useful for distributed programming? This question has constituted an active ar...
This paper uses logical relations for the first time to study the decidability of typechecking and s...
Multitier programming languages reduce the complexity of developing distributed systems by developin...
. We present the design and rationale of a new statically-typed object-oriented language, LOOM. LOOM...
We introduce a new compile–time notion of type subsumption based on type simulation. We show how to ...
Software developers often structure programs in such a way that different pieces of code constitute ...
Session types allow high-level specifications of structured patterns of communication, such as clien...
We outline the design and detail the implementation of a language extension for abstracting types an...
Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is ne...
Existing languages provide good support for typeful programming of standalone programs. In a distrib...
Existing ML-like languages guarantee type-safety, ensuring memory safety and protecting the invarian...
Nominal subtyping (or user-defined subtyping) and structural subtyping each have their own strengths...
C++ uses inheritance as a substitute for subtype polymorphism. We give examples where this makes the...
Consider a network of nodes running ML programs that ex hange data. How an data whi h has an abstra...
Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is ne...
What abstractions are useful for distributed programming? This question has constituted an active ar...
This paper uses logical relations for the first time to study the decidability of typechecking and s...
Multitier programming languages reduce the complexity of developing distributed systems by developin...
. We present the design and rationale of a new statically-typed object-oriented language, LOOM. LOOM...
We introduce a new compile–time notion of type subsumption based on type simulation. We show how to ...
Software developers often structure programs in such a way that different pieces of code constitute ...
Session types allow high-level specifications of structured patterns of communication, such as clien...
We outline the design and detail the implementation of a language extension for abstracting types an...