skip to main content
article

Abstraction preservation and subtyping in distributed languages

Published:16 September 2006Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. ACM Computing Surveys, 17(4):471--522, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. D. Grossman, G. Morrisett, and S. Zdancewic. Syntactic type abstraction. ACM TOPLAS, 22(6):1037--1080, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Harper and M. Lillibridge. A type-theoretic approach to higher-order modules with sharing. In POPL, pages 123--137, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. J. C. Reynolds. Types, abstraction and parametric polymorphism. In IFIP Congress, pages 513--523, 1983.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Wirth. The programming language oberon. Software Practice and Experience, 18(7), July 1988. The Language Report. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Abstraction preservation and subtyping in distributed languages

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!