2009
DOI: 10.1007/978-3-642-00590-9_2
|View full text |Cite
|
Sign up to set email alerts
|

Exploring the Design Space of Higher-Order Casts

Abstract: Abstract. This paper explores the surprisingly rich design space for the simply typed lambda calculus with casts and a dynamic type. Such a calculus is the target intermediate language of the gradually typed lambda calculus but it is also interesting in its own right. In light of diverse requirements for casts, we develop a modular semantic framework, based on Henglein's Coercion Calculus, that instantiates a number of space-efficient, blame-tracking calculi, varying in what errors they detect and how they ass… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
96
0

Year Published

2009
2009
2023
2023

Publication Types

Select...
4
4
1

Relationship

0
9

Authors

Journals

citations
Cited by 64 publications
(96 citation statements)
references
References 8 publications
0
96
0
Order By: Relevance
“…However, a higher-order cast (i.e. a cast that involves function types or, by extension, structural object types) cannot be verified immediately and therefore this check must be delayed [13,14]. This means that the point where an error is detected can be spatially and temporally decoupled from the actual source of the error.…”
Section: Blame Trackingmentioning
confidence: 99%
“…However, a higher-order cast (i.e. a cast that involves function types or, by extension, structural object types) cannot be verified immediately and therefore this check must be delayed [13,14]. This means that the point where an error is detected can be spatially and temporally decoupled from the actual source of the error.…”
Section: Blame Trackingmentioning
confidence: 99%
“…For example, consider the function 1 We infer that x and y have type Int, because the expressions on the right-hand sides have that type, and that z has type Dyn, which is the join of Int and Str. This join operation is over the subtyping lattice with Dyn as top from Siek et al [29], and always results in a type that can be safely casted to.…”
Section: Dataflow-based Type Inferencementioning
confidence: 99%
“…In contrast to gradual typing [3,19,26,29,30] and pluggable types [7], it introduces an intermediate step on the untyped-concretely typed spectrum and uses nominal rather than structural subtyping. Furthermore, it only requires operations to be present when actually used.…”
Section: Compile-time Optimizationsmentioning
confidence: 99%
“…Incremental typing schemes have been explored by Bracha and Griswold in Strongtalk [8] which inspired pluggable types [7], in various gradual type systems [3,19,26,29,30], and recently Typed Scheme [32,33]. In these works, dynamically typed programs can be incrementally annotated with static type information and untyped values are allowed to cross the boundary between static and dynamic code.…”
Section: Introductionmentioning
confidence: 99%