2006
DOI: 10.1007/11785477_21
|View full text |Cite
|
Sign up to set email alerts
|

Parameterized Modules for Classes and Extensible Functions

Abstract: Abstract. We present F(Eml), a language that combines classes, extensible functions, symmetric multiple dispatching, and a practical system for parameterized modules. Parameterized modules permit subclasses and function extensions to be defined and typechecked once, and then reused to extend multiple argument modules. F(Eml)'s predecessor, Eml, supported classes and extensible functions with multiple dispatch, but its support for parameterized modules was weak. F(Eml)'s key novel features are alias declaration… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
5
0

Year Published

2007
2007
2019
2019

Publication Types

Select...
2
2

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(5 citation statements)
references
References 40 publications
0
5
0
Order By: Relevance
“…Lee and Chambers developed F(EML) [6], which improves the module system of EML [8], an ML-like language that incorporates aspects of Dubious and System M. CF and F(EML) differ significantly in several ways: First, CF does not support parameterized modules. Second, although F(EML) allows exclusion relations between types, it treats inequality explicitly, tracking the freshness of classes and other declarations, which complicates its type system.…”
Section: Related Workmentioning
confidence: 99%
“…Lee and Chambers developed F(EML) [6], which improves the module system of EML [8], an ML-like language that incorporates aspects of Dubious and System M. CF and F(EML) differ significantly in several ways: First, CF does not support parameterized modules. Second, although F(EML) allows exclusion relations between types, it treats inequality explicitly, tracking the freshness of classes and other declarations, which complicates its type system.…”
Section: Related Workmentioning
confidence: 99%
“…While FGFV does not support features like modularity, nominal exclusion, and closed types in their work, they can be added in an obvious way. As the related work section of Allen et al [2011] discusses in detail, most earlier systems like Dubious [Millstein andChambers 1999, 2002;Millstein 2003], MultiJava [Clifton et al 2006], and F(EML) [Lee and Chambers 2006] supported overloading with symmetric multiple dynamic dispatch with multiple inheritance, but without support for polymorphic methods or types. While ML ≤ [Bourdoncle and Merz 1997] integrates polymorphism and symmetric multiple dynamic dispatch, it lacks multiple inheritance.…”
Section: Related Workmentioning
confidence: 99%
“…Specifically, we define three rules: 9 the No Duplicates Rule ensures that no two declarations are equally specific; the Meet Rule ensures that the set of overloaded declarations form a meet semilattice under the specificity relation; and the Return Type Rule ensures type preservation for dynamic dispatch. We prove that any set of overloaded function declarations satisfying these three properties is safe, even if the class table is extended (Theorem 1).…”
Section: Overloading Rules and Resolutionmentioning
confidence: 99%
“…With Clifton and Leavens, they developed MultiJava [5], an extension of Java with Dubious' semantics for multimethods. Lee and Chambers presented F(EML) [9], a language with classes, symmetric multiple dispatch, and parameterized modules. In previous work [2], we built on the work of Millstein and Chambers to give modular rules for a core of the Fortress language [1], which supports multiple inheritance and does not require that types have expressible meets (i.e., the types that can be expressed in the language need not form a meet semilattice), but defines an exclusion 15 Suggested by an anonymous reviewer of a previous version of this paper.…”
Section: Overloading Across Modulesmentioning
confidence: 99%