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.
- J. Billings, P. Sewell, M. Shinwell, and R. Strniša. Type-safe distributed programming for OCaml. Submitted for publication. http://www. cl. cam. ac. uk/users/pes20/hashcaml/. Google Scholar
Digital Library
- L. Cardelli, J. E. Donahue, M. Jordan, B. Kalsow, and G. Nelson. The Modula-3 type system. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 202--212, Austin, Texas, 1989. Google Scholar
Digital Library
- L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. ACM Computing Surveys, 17(4):471--522, 1985. Google Scholar
Digital Library
- P.-M. Deniélou and J. J. Leifer. Abstraction preservation and subtyping in distributed languages. Technical report, INRIA Rocquencourt, 2006. Available from http://pauillac. inria. fr/~denielou/.Google Scholar
- D. Grossman, G. Morrisett, and S. Zdancewic. Syntactic type abstraction. ACM TOPLAS, 22(6):1037--1080, 2000. Google Scholar
Digital Library
- R. Harper and M. Lillibridge. A type-theoretic approach to higher-order modules with sharing. In POPL, pages 123--137, 1994. Google Scholar
Digital Library
- J.J. Leifer, G. Peskine, P. Sewell, and K. Wansbrough. Global abstraction-safe marshalling with hash types. In Proc. 8th ICFP, 2003. Available from http://pauillac.inria.fr/ÿleifer/research. html. Google Scholar
Digital Library
- S. Michaylov and F. Pfenning. An empirical study of the runtime behavior of higher-order logic programs. In D. Miller, editor, Proceedings of the Workshop on the d Prolog Programming Language, pages 257--271, Philadelphia, Pennsylvania, July 1992. University of Pennsylvania. Available as Technical Report MS-CIS-92-86.Google Scholar
- R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, 1990. Google Scholar
Digital Library
- G. Plotkin, M. Abadi, and L. Cardelli. Subtyping and parametricity. In Proc. of 9th Ann. IEEE Symp. on Logic in Computer Science, LICS'94, Paris, France, 4-7 July 1994, pages 310--319. IEEE Computer Society Press, Los Alamitos, CA, 1994.Google Scholar
Cross Ref
- J. C. Reynolds. Types, abstraction and parametric polymorphism. In IFIP Congress, pages 513--523, 1983.Google Scholar
- P. Sewell, J.J. Leifer, K. Wansbrough, F. Zappa Nardelli, M. Allen-Williams, P. Habouzit, and V. Vafeiadis. Acute: High-level programming language design for distributed computation. In Proceedings of ICFP 2005: International Conference on Functional Programming (Tallinn), Sept. 2005. To appear. Google Scholar
Digital Library
- E. Sumii and B. C. Pierce. Logical relations for encryption. Journal of Computer Security, 11(4):521--554, 2003. Extended abstract appeared in 14th IEEE Computer Security Foundations Workshop, pp. 256--269, 2001. Google Scholar
Digital Library
- N. Wirth. The programming language oberon. Software Practice and Experience, 18(7), July 1988. The Language Report. Google Scholar
Digital Library
Index Terms
Abstraction preservation and subtyping in distributed languages
Recommendations
Abstraction preservation and subtyping in distributed languages
ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programmingIn 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 ...
On the power of coercion abstraction
POPL '12Erasable coercions in System F-eta, also known as retyping functions, are well-typed eta-expansions of the identity. They may change the type of terms without changing their behavior and can thus be erased before reduction. Coercions in F-eta can model ...
Inheritance-based subtyping
FOOL VIIClasses play a dual role in mainstream statically typed object-oriented languages, serving as both object generators and object types. In such languages, inheritance implies subtyping. In contrast, the theoretical language community has viewed this ...







Comments