Efficient multimethods in a single dispatch language

  • Authors:
  • Brian Foote;Ralph E. Johnson;James Noble

  • Affiliations:
  • Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL;Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL;School of Mathematical and Computing Sciences, Victoria University of Wellington, Wellington, New Zealand

  • Venue:
  • ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Smalltalk-80 is a pure object-oriented language in which messages are dispatched according to the class of the receiver, or first argument, of a message. Object-oriented languages that support multimethods dispatch messages using all their arguments. While Smalltalk does not support multimethods, Smalltalk's reflective facilities allow programmers to efficiently add them to the language. This paper explores several ways in which this can be done, and the relative efficiency of each. Moreover, this paper can be seen as a lens through which the design issues raised by multimethods, as well as by using metaobjects to build them, can be more closely examined.