Skip to main content

Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3586))

Abstract

Two object-oriented programming language paradigms—dynamic, prototype-based languages and multi-method languages—provide orthogonal benefits to software engineers. These two paradigms appear to be in conflict, however, preventing engineers from realizing the benefits of both technologies in one system. This paper introduces a novel object model, prototypes with multiple dispatch (PMD), which seamlessly unifies these two approaches. We give formal semantics for PMD, and discuss implementation and experience with PMD in the dynamically typed programming language Slate.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)

    MATH  Google Scholar 

  2. Bobrow, D.G., DiMichiel, L.G., Gabriel, R.P., Keene, S.E., Kiczales, G., Moon, D.A.: Common Lisp Object System Specification. In: SIGPLAN Notices, september 1988, vol. 23 (1988)

    Google Scholar 

  3. Bono, V., Fisher, K.: An Imperative, First-Order Calculus with Object Extension. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 462. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  4. Castagna, G., Ghelli, G., Longo, G.: A Calculus for Overloaded Functions with Subtyping. In: Lisp and Functional Programming (1992)

    Google Scholar 

  5. Chambers, C.: Object-Oriented Multi-Methods in Cecil. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 33–56. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  6. Chambers, C.: Predicate Classes. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 268–296. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  7. Drossopoulou, S., Damiani, F., Dezani-Ciancaglini, M., Giannini, P.: More Dynamic Object Reclassification: Fickle II. Transactions on Programming Languages and Systems 24(2), 153–191 (2002)

    Article  Google Scholar 

  8. Ernst, M.D., Kaplan, C.S., Chambers, C.: Predicate Dispatching: A Unified Theory of Dispatch. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 186. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  9. Feinberg, N., Keene, S.E., Mathews, R.O., Withington, P.T.: Dylan Programming. Addison-Wesley, Reading (1997)

    MATH  Google Scholar 

  10. Fisher, K., Honsell, F., Mitchell, J.C.: A Lambda Calculus of Objects and Method Specialization. Nordic Journal of Computing 1(1), 3–37 (1994)

    MATH  MathSciNet  Google Scholar 

  11. Goldberg, A., Robson., D.: Smalltalk-80: The Language. Addison-Wesley, Reading (1989)

    MATH  Google Scholar 

  12. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  13. Millstein, T.: Practical Predicate Dispatch. In: Object-Oriented Programming Systems, Languages, and Applications (2004)

    Google Scholar 

  14. Millstein, T., Chambers, C.: Modular Statically Typed Multimethods. Information and Computation 175(1), 76–118 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  15. Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)

    Google Scholar 

  16. Rice, B., Salzman, L.: The Slate Programmer’s Reference Manual (2004), Available at, http://slate.tunes.org/progman/

  17. Ungar, D., Smith, R.B.: Self: The Power of Simplicity. In: Object-Oriented Programming Systems, Languages, and Applications, pp. 227–242. ACM Press, New York (1987)

    Google Scholar 

  18. Ungar, D., Smith, R.B.: A Simple and Unifying Approach to Subjective Objects. Theory and Practice of Object Systems 2(3), 161–178 (1996)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Salzman, L., Aldrich, J. (2005). Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_14

Download citation

  • DOI: https://doi.org/10.1007/11531142_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-27992-1

  • Online ISBN: 978-3-540-31725-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics