1997
DOI: 10.1007/bfb0030639
|View full text |Cite
|
Sign up to set email alerts
|

A typed intermediate language for flow-directed compilation

Abstract: We present a typed intermediate language ,~CIL for optimizing compilers for function-oriented and polymorphicaUy typed programming languages (e.g., ML). The language ACIL is a typed lambda calculus with product, sum, intersection, and union types as well as function types annotated with flow labels. A novel formulation of intersection and union types supports encoding flow information in the typed program representation. This flow information can direct optimization.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
23
0

Year Published

1997
1997
2005
2005

Publication Types

Select...
6
1

Relationship

2
5

Authors

Journals

citations
Cited by 17 publications
(23 citation statements)
references
References 23 publications
0
23
0
Order By: Relevance
“…Examples of polyvariant analyses include call-string based approaches, such as k-CFA (Shivers, 1991;Jagannathan & Weeks, 1995;, polymorphic splitting (Wright & Jagannathan, 1998), type-directed flow analysis (Jagannathan et al, 1997), and argument based polyvariance, such as Schmidt's analysis (Schmidt, 1995) and Agesen's cartesian product analysis (Agesen, 1995). In terms of the flow/type correspondence, several forms of flow polyvariance appear to correspond to type polymorphism expressed with intersection and union types (Banerjee, 1997;Wells et al, 1997;Dimock et al, 1997;. Intuitively, intersection types are finitary polymorphic types that model the multiple analyses for a given abstract closure, while union types are finitary existential types that model the merging of abstract values where flow paths join.…”
Section: Introductionmentioning
confidence: 99%
“…Examples of polyvariant analyses include call-string based approaches, such as k-CFA (Shivers, 1991;Jagannathan & Weeks, 1995;, polymorphic splitting (Wright & Jagannathan, 1998), type-directed flow analysis (Jagannathan et al, 1997), and argument based polyvariance, such as Schmidt's analysis (Schmidt, 1995) and Agesen's cartesian product analysis (Agesen, 1995). In terms of the flow/type correspondence, several forms of flow polyvariance appear to correspond to type polymorphism expressed with intersection and union types (Banerjee, 1997;Wells et al, 1997;Dimock et al, 1997;. Intuitively, intersection types are finitary polymorphic types that model the multiple analyses for a given abstract closure, while union types are finitary existential types that model the merging of abstract values where flow paths join.…”
Section: Introductionmentioning
confidence: 99%
“…The idea is to use types that are annotated with sets. Flow types have been studied by Tang and Jouvelot [32], Heintze [6], Wells, Dimock, Muller, and Turbak [36], and others, who show how to prove soundness for various kinds of flow types. Correctness results for other kinds of annotatedtype systems have been presented by Nielson, Nielson, and Hankin [18].…”
Section: Correctnessmentioning
confidence: 99%
“…Typed intermediate languages [19,18,25,32] support typedirected transformations while simultaneously increasing confidence in the correctness of such transformations. In th~paper, we focus on representation transformations, i.e., those that arise in data type implementations.…”
Section: Introductionmentioning
confidence: 99%