1998
DOI: 10.1145/291251.289459
|View full text |Cite
|
Sign up to set email alerts
|

Intensional polymorphism in type-erasure semantics

Abstract: Intensional polymorphism, the ability to dispatch to different routines based on types at run time, enables a variety of advanced implementation techniques for polymorphic languages, including tag-free garbage collection, unboxed function arguments, polymorphic marshalling, and flattened data structures. To date, languages that support intensional polymorphism have required a type-passing (as opposed to type-erasure) interpretation where types are constructed and passed to polymorphic functions at run time. Un… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1

Citation Types

0
41
0
2

Year Published

1999
1999
2009
2009

Publication Types

Select...
4
4
1

Relationship

2
7

Authors

Journals

citations
Cited by 36 publications
(43 citation statements)
references
References 26 publications
0
41
0
2
Order By: Relevance
“…Overloaded functions can be expressed using • type reflection: This is the approach we have used in the main bulk of this article. Its origins can be traced back to the work on intensional type analysis (ITA) [16,13,12,49,51]. ITA is intensively used in typed intermediate languages, in particular, for optimising purely polymorphic functions.…”
Section: Related Workmentioning
confidence: 99%
“…Overloaded functions can be expressed using • type reflection: This is the approach we have used in the main bulk of this article. Its origins can be traced back to the work on intensional type analysis (ITA) [16,13,12,49,51]. ITA is intensively used in typed intermediate languages, in particular, for optimising purely polymorphic functions.…”
Section: Related Workmentioning
confidence: 99%
“…Generic programming within an intermediate language of a typed compiler has been studied under the names intensional polymorphism and intensional type analysis by Harper and Morrisett [17] and Crary, Weirich, and Morrisett [14]. The gist of this approach is to have a type case construct on the level of programs, in later developments even also on the level of types.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…With sufficiently expressive intensional type analysis [9,39] one could define type-safe marshalling within the language itself, but there is a tension here: if the language is this expressive, allowing abstract types to be analysed, then abstraction boundaries are not enforced even within a single program.…”
Section: Related Workmentioning
confidence: 99%