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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)
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)
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)
Castagna, G., Ghelli, G., Longo, G.: A Calculus for Overloaded Functions with Subtyping. In: Lisp and Functional Programming (1992)
Chambers, C.: Object-Oriented Multi-Methods in Cecil. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 33–56. Springer, Heidelberg (1992)
Chambers, C.: Predicate Classes. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 268–296. Springer, Heidelberg (1993)
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)
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)
Feinberg, N., Keene, S.E., Mathews, R.O., Withington, P.T.: Dylan Programming. Addison-Wesley, Reading (1997)
Fisher, K., Honsell, F., Mitchell, J.C.: A Lambda Calculus of Objects and Method Specialization. Nordic Journal of Computing 1(1), 3–37 (1994)
Goldberg, A., Robson., D.: Smalltalk-80: The Language. Addison-Wesley, Reading (1989)
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)
Millstein, T.: Practical Predicate Dispatch. In: Object-Oriented Programming Systems, Languages, and Applications (2004)
Millstein, T., Chambers, C.: Modular Statically Typed Multimethods. Information and Computation 175(1), 76–118 (2002)
Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)
Rice, B., Salzman, L.: The Slate Programmer’s Reference Manual (2004), Available at, http://slate.tunes.org/progman/
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)
Ungar, D., Smith, R.B.: A Simple and Unifying Approach to Subjective Objects. Theory and Practice of Object Systems 2(3), 161–178 (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)