MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Predicate Dispatching: A Unified Theory of Dispatch (1998) [64 citations — 5 self]

by Michael Ernst ,  Craig Kaplan ,  Craig Chambers
Add To MetaCart

Abstract:

. Predicate dispatching generalizes previous method dispatch mechanisms by permitting arbitrary predicates to control method applicability and by using logical implication between predicates as the overriding relationship. The method selected to handle a message send can depend not just on the classes of the arguments, as in ordinary object-oriented dispatch, but also on the classes of subcomponents, on an argument's state, and on relationships between objects. This simple mechanism subsumes and extends object-oriented single and multiple dispatch, ML-style pattern matching, predicate classes, and classifiers, which can all be regarded as syntactic sugar for predicate dispatching. This paper introduces predicate dispatching, gives motivating examples, and presents its static and dynamic semantics. An implementation of predicate dispatching is available. 1 Introduction Many programming languages support some mechanism for dividing the body of a procedure into a set of cases, with a dec...

Citations

1415 The Definition of Standard ML – Milner, Tofte, et al. - 1990
293 Pizza into Java: Translating theory into practice – Odersky, Wadler - 1997
147 Object-oriented multi-methods in Cecil – Chambers
112 Predicate classes – Chambers - 1993
104 Views: A way for pattern matching to cohabit with data abstraction – WADLER - 1987
94 Typechecking and modules for multi-methods – Chambers, Leavens - 1995
75 Report on the Programming Language Haskell, Version 1.0. Unpublished manual – Hudak, Wadler, et al. - 1990
73 Common LISP: The Language – Jr - 1984
49 Optimizing multi-method dispatch using compressed dispatch tables – Amiel, Gruber, et al. - 1994
48 Multi-methods in a statically-typed programming language – Mugridge, Hamer, et al. - 1991
43 Commonloops: Merging lisp and object-oriented programming – Bobrow, Kahn, et al.
23 Efficient dynamic lookup strategy for multi-methods – Chen, Turau, et al. - 1994
13 Polymorphic unification and ML typing – Kanellakis, Mitchell - 1989
7 Integrating functional and object-oriented programming – Hosking, Hamer, et al. - 1990
2 A method for integrating classification within an object-oriented environment – Hamer, Hosking, et al. - 1990
1 186 Cha93b. Craig Chambers. Predicate classes – Rodriguez - 1993