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.
Preview
Unable to display preview. Download preview PDF.
Bibliography
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.
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.
Roberto Amadio and Luca Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4): 575–631, 1993.
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.
A. Birrell, G. Nelson, S. Owicki, and E. Wobber. Network objects. Technical report, DEC Systems Research Center, Palo Alto, California, 1993.
Val Breazu-Tannen, Thierry Coquand, Carl Gunter, and Andre Scedrov. Inheritance as implicit coercion. Information and Computation, 93(1): 172–221, 1991.
Peter Buneman and Atsushi Ohori. Polymorphism and type inference in database programming. ACM Transactions on Database Systems, 1996. To appear.
Luca Cardelli. Typeful programming. Technical report, DEC Systems Research Center, 1989.
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.
Daniel Dougherty. Some lambda calculi with categorical sums and products. In Rewriting Techniques and Applications, Lecture Notes in Computer Science. Springer-Verlag, 1993.
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.
Dominic Duggan. Dynamic typing for distributed programming in polymorphic languages. To appear in Transactions on Programming Languages and Systems, 1998.
Dominic Duggan. Finite subtype inference with explicit polymorphism. Submitted for publication, 1998.
Dominic Duggan and John Ophel. Scoped parametric overloading. Submitted for publication, 1997.
Dominic Duggan and John Ophel. Type-checking multi-parameter type classes. Submitted for publication, 1997.
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.
James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series. Addison-Wesley, 1997.
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.
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.
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.
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.
Frederick Knabe. Language Support for Mobile Agents. PhD thesis, Carnegie Mellon University, 1995.
Clifford Krumvieda. Distributed ML: Abstraction for Efficient and Fault-Tolerant Programming. PhD thesis, Cornell University, Ithaca, New York, 1993.
Xavier Leroy and Michel Mauny. Dynamics in ML. Journal of Functional Programming, 3(4): 431–163, 1993.
Xavier Leroy and Pierre Weiss. Dynamics in ML. In Proceedings of ACM Symposium on Functional Programming and Computer Architecture, 1991.
Barbara Liskov. Distributed programming in Argus. Communications of the ACM, 31(3), 1988.
J. Gregory Morrisett. Compiling With Types. PhD thesis, Carnegie-Mellon University, 1995.
Greg Nelson. Systems Programming in Modula-3. Prentice-Hall Series in Innovative Technology. Prentice-Hall, 1991.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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