Skip to main content

A type-based semantics for user-defined marshalling in polymorphic languages

  • Conference paper
  • First Online:
Types in Compilation (TIC 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1473))

Included in the following conference series:

Abstract

Marshalling is an important aspect of distributed programming, particularly in typed programming languages. A semantics is provided for user-defined marshalling operations in polymorphic languages such as ML. The semantics of this are expressed in an internal language with recursion and dynamic type dispatch at both the term and type levels. User-defined marshalling amounts to reifying dynamic type dispatch to the programmer level in an ML-like language. A “external” language XML dynΠ is provided with explicit pickle types and operations for building and deconstructing pickles with user-defined marshalling.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Bibliography

  1. Martin Abadi, Luca Cardeli, Benjamin Pierce, and Didier Remy. Dynamic typing in polymorphic languages. In Peter Lee, editor, Proceedings of the ACM SIGPLAN Workshop on ML and its Applications, San Francisco, California, 1992. Carnegie-Mellon University Technical Report CMU-CS-93-105.

    Google Scholar 

  2. Martin Abadi, Luca Cardelli, Benjamin Pierce, and Gordon Plotkin. Dynamic typing in a statically typed language. ACM Transactions on Programming Languages andSystems, 13(2): 237–268, 1991.

    Article  Google Scholar 

  3. Roberto Amadio and Luca Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4): 575–631, 1993.

    Article  Google Scholar 

  4. J. Bacon and K. G. Hamilton. Distributed computing with RPC: The Cambridge approach. In Proceedings of IFIP Conference on Distributed Computing, Amsterdam, 1987. North-Holland.

    Google Scholar 

  5. A. Birrell, G. Nelson, S. Owicki, and E. Wobber. Network objects. Technical report, DEC Systems Research Center, Palo Alto, California, 1993.

    Google Scholar 

  6. Val Breazu-Tannen, Thierry Coquand, Carl Gunter, and Andre Scedrov. Inheritance as implicit coercion. Information and Computation, 93(1): 172–221, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  7. Peter Buneman and Atsushi Ohori. Polymorphism and type inference in database programming. ACM Transactions on Database Systems, 1996. To appear.

    Google Scholar 

  8. Luca Cardelli. Typeful programming. Technical report, DEC Systems Research Center, 1989.

    Google Scholar 

  9. Roberto Di Cosmo and Delia Kesner. A confluent reduction for the extensional typed λ-calculus with pairs, sums, recursion and terminal object. In Proceedings of the International Conference on Automata, Languages and Programming, volume 700 of Lecture Notes in Computer Science, pages 645–656. Springer-Verlag, 1993.

    Google Scholar 

  10. Daniel Dougherty. Some lambda calculi with categorical sums and products. In Rewriting Techniques and Applications, Lecture Notes in Computer Science. Springer-Verlag, 1993.

    Google Scholar 

  11. Catherine Dubois, Francois Rouaix, and Pierre Weis. Extensional polymorphism. In Proceedings of ACM Symposium on Principles of Programming Languages, San Francisco, California, 1995. ACM Press.

    Google Scholar 

  12. Dominic Duggan. Dynamic typing for distributed programming in polymorphic languages. To appear in Transactions on Programming Languages and Systems, 1998.

    Google Scholar 

  13. Dominic Duggan. Finite subtype inference with explicit polymorphism. Submitted for publication, 1998.

    Google Scholar 

  14. Dominic Duggan and John Ophel. Scoped parametric overloading. Submitted for publication, 1997.

    Google Scholar 

  15. Dominic Duggan and John Ophel. Type-checking multi-parameter type classes. Submitted for publication, 1997.

    Google Scholar 

  16. Tim Freeman and Frank Pfenning. Refinement types for ML. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 268–277. ACM Press, 1991.

    Google Scholar 

  17. James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series. Addison-Wesley, 1997.

    Google Scholar 

  18. Graham Hamilton, Michael L. Powell, and James J. Mitchell. Subcontract: A flexible base for distributed programming. In Symposium on Operating Systems Principles, pages 69–79. ACM Press, 1993.

    Google Scholar 

  19. Robert Harper and John C. Mitchell. On the type structure of Standard ML. ACM Transactions on Programming Languages and Systems, 15(2): 211–252, 1993.

    Article  Google Scholar 

  20. Robert Harper and Gregory Morrisett. Compiling polymorphism using intensional type analysis. In Proceedings of ACM Symposium on Principles of Programming Languages, San Francisco, California, 1995. ACM Press.

    Google Scholar 

  21. Maurice Herlihy and Barbara Liskov. A value transmission method for abstract data types. ACM Transactions on Programming Languages and Systems, 4(4): 527–551, 1982.

    Article  MATH  Google Scholar 

  22. Frederick Knabe. Language Support for Mobile Agents. PhD thesis, Carnegie Mellon University, 1995.

    Google Scholar 

  23. Clifford Krumvieda. Distributed ML: Abstraction for Efficient and Fault-Tolerant Programming. PhD thesis, Cornell University, Ithaca, New York, 1993.

    Google Scholar 

  24. Xavier Leroy and Michel Mauny. Dynamics in ML. Journal of Functional Programming, 3(4): 431–163, 1993.

    Article  Google Scholar 

  25. Xavier Leroy and Pierre Weiss. Dynamics in ML. In Proceedings of ACM Symposium on Functional Programming and Computer Architecture, 1991.

    Google Scholar 

  26. Barbara Liskov. Distributed programming in Argus. Communications of the ACM, 31(3), 1988.

    Google Scholar 

  27. J. Gregory Morrisett. Compiling With Types. PhD thesis, Carnegie-Mellon University, 1995.

    Google Scholar 

  28. Greg Nelson. Systems Programming in Modula-3. Prentice-Hall Series in Innovative Technology. Prentice-Hall, 1991.

    Google Scholar 

  29. Atsushi Ohori and Kazuhiko Kato. Semantics for communication primitives in a polymorphic language. In Proceedings of ACM Symposium on Principles of Programming Languages, pages 99–112. ACM Press, 1993.

    Google Scholar 

  30. David Tarditi, Greg Morrisett, Perry Cheng, Christopher Stone, Robert Harper, and Peter Lee. TIL: A type-directed optimizing compiler for ML. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Philadelphia, Pennsylvania, 1996. ACM Press.

    Google Scholar 

  31. Bent Thomsen, Lone Leth, Sanjiva Prasad, Tsung-Min Kuo, Andre Kramer, Fritz Knabe, and Alessandro Giacalone. Facile Antigua release programming guide. Technical Report ECRC-93-20, European Computer-Industry Research Centre, Munich, Germany, 1993.

    Google Scholar 

  32. Andrew Wright and Robert Cartwright. A practical soft type system for Scheme. In Proceedings of ACM Symposium on Lisp and Functional Programming, pages 250–262, Orland, Florida, 1994. ACM Press.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Xavier Leroy Atsushi Ohori

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Duggan, D. (1998). A type-based semantics for user-defined marshalling in polymorphic languages. In: Leroy, X., Ohori, A. (eds) Types in Compilation. TIC 1998. Lecture Notes in Computer Science, vol 1473. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055524

Download citation

  • DOI: https://doi.org/10.1007/BFb0055524

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64925-0

  • Online ISBN: 978-3-540-68308-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics