1999
DOI: 10.1007/3-540-48743-3_13
|View full text |Cite
|
Sign up to set email alerts
|

Modular Statically Typed Multimethods

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 descr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
10
0

Year Published

1999
1999
2009
2009

Publication Types

Select...
5
3

Relationship

2
6

Authors

Journals

citations
Cited by 27 publications
(10 citation statements)
references
References 33 publications
0
10
0
Order By: Relevance
“…Our system builds on the work of Millstein and Chambers [9,7], who introduce the Dubious language to illustrate and explore the challenges of modularly ensuring that no undefined nor ambiguous calls occur at run time, resulting in the definition of System M, a statically checkable set of restrictions on modules that guarantees this property. 2 Dubious supports overloaded functions with symmetric multiple dispatch (which they call multimethods) and multiple inheritance.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Our system builds on the work of Millstein and Chambers [9,7], who introduce the Dubious language to illustrate and explore the challenges of modularly ensuring that no undefined nor ambiguous calls occur at run time, resulting in the definition of System M, a statically checkable set of restrictions on modules that guarantees this property. 2 Dubious supports overloaded functions with symmetric multiple dispatch (which they call multimethods) and multiple inheritance.…”
Section: Related Workmentioning
confidence: 99%
“…Millstein and Chambers studied this problem and developed System M, a set of such restrictions that can be checked modularly. But System M prevents multiple implementation inheritance across module boundaries [9]. In this paper, we describe a new set of overloading restrictions that can be statically and modularly checked without forbidding multiple inheritance.…”
Section: Introductionmentioning
confidence: 99%
“…Millstein and Chambers show in [28] that open-methods cannot be modularly type checked if the language (like C++) supports multiple implementation inheritance. Therefore, we split our call resolution mechanism into three distinct stages:…”
Section: Definition 1 An Open-methods Is Considered An Overrider (Or)mentioning
confidence: 99%
“…When declared within classes, such functions are often referred to as "multi-methods". When declared independently of the type on which they dispatch, such functions are often referred to as open class extensions, accessory functions [39], arbitrary multi-methods [28], or "open-methods". Languages supporting multiple dispatch include CLOS [32], MultiJava [12,27], Dylan [30], and Cecil [10]).…”
Section: Introductionmentioning
confidence: 99%
“…Secondly, it may be used as a further filter of visibility of methods. Symmetric multi-methods introduce the possibility of ambiguity in dispatch [10]. Guarding against such ambiguity is done at the service level and checked at service compilation time.…”
Section: Services and Service Compositionmentioning
confidence: 99%