paper

Predicate Dispatching: A Unified Theory of Dispatch

  • Authors:

πŸ“œ 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.

✨ Summary

The paper established predicate dispatching as a unified model in which arbitrary predicates determine method applicability and logical implication determines method overriding. Subsequent research developed the idea in several directions. Millstein, Frost, Ryder, and Warth proposed a more expressive and modular predicate-dispatch design for Java, explicitly addressing practical limitations of earlier predicate-dispatch languages. (web.cs.ucla.edu)

Related work also explored implementation frameworks for advanced dispatching: ALIA4J treated predicate dispatching as one of the advanced-dispatch mechanisms that language implementations should support. (research.utwente.nl) The concept influenced predicate-oriented programming beyond language prototypes; an industrial case study used predicate fields, a related mechanism for state-dependent object structure, in a mission-critical control system and reported increased flexibility and reduced development effort in several areas. (homes.cs.washington.edu)

The authors also released an implementation, GΓΌd/Dubious, demonstrating the semantics described in the paper. (projectsweb.cs.washington.edu) These references indicate continued influence on programming-language research and on experiments applying predicate-oriented mechanisms in industrial software, although predicate dispatching itself has not become a mainstream feature of major general-purpose languages.