2011
DOI: 10.1145/2076021.2048140
|View full text |Cite
|
Sign up to set email alerts
|

Type checking modular multiple dispatch with parametric polymorphism and multiple inheritance

Abstract: In previous work, we presented rules for defining overloaded functions that ensure type safety under symmetric multiple dispatch in an object-oriented language with multiple inheritance, and we showed how to check these rules without requiring the entire type hierarchy to be known, thus supporting modularity and extensibility. In this work, we extend these rules to a language that supports parametric polymorphism on both classes and functions.In a multiple-inheritance language in which any type may be extended… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
15
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
2
2
1

Relationship

1
4

Authors

Journals

citations
Cited by 7 publications
(15 citation statements)
references
References 14 publications
0
15
0
Order By: Relevance
“…Reasoning about type disjointness is, for instance, used for preventing ambiguous overloading in the Fortress programming language [11].…”
Section: Discussionmentioning
confidence: 99%
See 2 more Smart Citations
“…Reasoning about type disjointness is, for instance, used for preventing ambiguous overloading in the Fortress programming language [11].…”
Section: Discussionmentioning
confidence: 99%
“…Our Coq formalization [21] totals more than 14kLOC, 11 out of which more than 1.5kLOC are just definitions. We used Ott [115] to generate a large part of these definitions from a 1kLOC long Ott specification, but for the more complex rules we often 11 All code size figures include whitespace and comments.…”
Section: Theorem 15 (Value Of Type Private ⇒ Robustly Private) If ∅mentioning
confidence: 99%
See 1 more Smart Citation
“…Though multiple dispatch is more often found in dynamic languages, there has been research on safe integration of dynamic dispatch into statically typed languages [1,6,7,9,18]. There, subtyping is used for both static type checking and dynamic method resolution.…”
Section: Related Workmentioning
confidence: 99%
“…For example we select the above rule over one with pattern InvoiceLine .spec( ItemSpecification ),or InvoiceLine .spec for short, for an attribute weight of dynamic type WeightedItemSpec in an InvoiceLine . Note though that, unlike in dynamic method dispatching [10] this selection itself is not done dynamically; as we will elaborate on in Section 5, relevant t-rules are resolved before actually being applied.…”
Section: Subtypingmentioning
confidence: 99%