Efficient Multimethods in a Single Dispatch Language

Landmarks

Let’s Get Serious

Motivation: A Simple Scotsman

A Simple Irishman

A Simple, but Naïve Test

A Simple, Unsuccessful Variation

A Useless Overload

 A Type Case

The Olfactory Method

Double Dispatch

Dynamic Multidispatch?

Syntax Matters

Multimethods in Smalltalk

Browsing Multimethods

Visitor: Before

Visitor: After

A Language Built of Objects

Objects We Built

Slide 20

Slide 21

N-Way Multidispatch

Generated Redispatching Methods

Performance

Lessons

I Have Nothing to Declare

Acknowledgements