login

Modular Statically Typed Multimethods

Information and ComputationPublished 1 May 2002
Todd Millstein, Craig Chambers
Citations66
SJR quartileQ2
SJR score0.49
SNIP0.88

TL;DR

Dubious is described, a simple core language including first-class generic functions with symmetric multimethods, a classless object model, and modules that can be separately typechecked, and each of these modular type systems sound.

Abstract

Multimethods offer several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the binary method problem, a natural implementation of the strategy design pattern, and a form of open objects that enables easy addition of new operations to existing classes. However, previous work on statically typed multimethods whose arguments are treated symmetrically has required the whole program to be available in order to perform typechecking. We describe Dubious, a simple core language including first-class generic functions with symmetric multimethods, a classless object model, and modules that can be separately typechecked. We identify two sets of restrictions that ensure modular type safety for Dubious as well as an interesting intermediate point between these two. We have proved each of these modular type systems sound.

Keywords

Computer Science