2008
DOI: 10.5381/jot.2008.7.1.a4
|View full text |Cite
|
Sign up to set email alerts
|

Nominal and Structural Subtyping in Component-Based Programming.

Abstract: In nominal type systems, the subtype relation is between names of types, and subtype links are explicitly declared. In structural type systems, names are irrelevant; in determining type compatibility, only the structure of types is considered, and a type name is just an abbreviation for the full type. We analyze structural and different flavors of nominal subtyping from the perspective of component-based programming, where issues such as blame assignment and modular extensibility are important. Our analysis pu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
11
0

Year Published

2009
2009
2016
2016

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 16 publications
(11 citation statements)
references
References 36 publications
0
11
0
Order By: Relevance
“…Ideally, we would like to write classes AbstractFile and AbstractFileReader which are statically verified to have the same structural interface as their concrete counterparts. This would require some form of structural subtyping or a form of nominal subtyping where a subtype of a class can be created without inheriting its implementation, such as in the work by Ostermann et al [19], [20].…”
Section: Discussionmentioning
confidence: 99%
“…Ideally, we would like to write classes AbstractFile and AbstractFileReader which are statically verified to have the same structural interface as their concrete counterparts. This would require some form of structural subtyping or a form of nominal subtyping where a subtype of a class can be created without inheriting its implementation, such as in the work by Ostermann et al [19], [20].…”
Section: Discussionmentioning
confidence: 99%
“…When method names do not fit, the usual OOP solution is to implement Adapter classes like: Such name abstraction at a function level can also be related to the distinction between nominal and structural compatibilities (see e.g. [Bru02,Ost08]). Recall that in the nominal case, type compatibilities depend on explicit declarations, generally by explicit class inheritances and subtyping definitions.…”
Section: Functional Granularity Design In Oopmentioning
confidence: 99%
“…In designing particular aspects of our system we have been inspired by a great many other technologies; in particular languages such as XAML [11], work on structural subtyping [12], event-driven architectures such as SEDA [19] and many others.…”
Section: Related Workmentioning
confidence: 99%