1997
DOI: 10.1145/258949.258952
|View full text |Cite
|
Sign up to set email alerts
|

Strongly typed flow-directed representation transformations (extended abstract)

Abstract: Topic Areascompilation, lambda calculus, intersection and union types, typed flow analysis, closure conversion, Mning AbstractWe present a new framework for transforming data representations in a strongly typed int errnedlate language. Our method allows both value producers (sources) and value consumem (sinks) to support multiple representations, autm aticaily inserting any required code. Specialized representations can be easily chosen for particular Source/sink pairs. The framework is based on these techniqu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0

Year Published

2000
2000
2005
2005

Publication Types

Select...
5
1
1

Relationship

1
6

Authors

Journals

citations
Cited by 12 publications
(12 citation statements)
references
References 17 publications
0
12
0
Order By: Relevance
“…The annotation with tags gives rise to intersection and union types that are not associative, commutative, or idempotent (ACI). This stands in contrast to the ACI types of P&P, but is similar to the non-ACI intersection and union types of CIL, the intermediate language of an experimental compiler that integrates flow information into the type system Dimock et al, 1997). Indeed, a key motivation of this work was to formalize the encoding of various flow analyses in the CIL type system.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…The annotation with tags gives rise to intersection and union types that are not associative, commutative, or idempotent (ACI). This stands in contrast to the ACI types of P&P, but is similar to the non-ACI intersection and union types of CIL, the intermediate language of an experimental compiler that integrates flow information into the type system Dimock et al, 1997). Indeed, a key motivation of this work was to formalize the encoding of various flow analyses in the CIL type system.…”
Section: Discussionmentioning
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 work presented in this paper is mainly inspired by recent research on effect inference [6,10,11,23,24], efficient implementation of first-class continuations [2,8,22,1], monads and modular interpreters [30,12,29,13], typed intermediate languages [7,26,20,17,16,3], and foreign function call interface [9,18]. In the following, we briefly explain the relationship of these work with our resource-based approach.…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…However, recent work [7,14,21,17,3,16,15] has mostly focused on the theoretical foundations and general language design issues. The type system in this paper focused on the problem of compiling multiple source languages into a common typed intermediate format.…”
Section: -Typed Intermediate Languages Typed Intermediate Languages mentioning
confidence: 99%
“…Modern type-directed compilers [19,25,7,32,20,28,12] exploit the properties of typed languages more extensively than their predecessors by preserving type information computed in the front end through a series of typed intermediate languages. These compilers use types to direct sophisticated transformations such as closure conversion [18,31,17,4,21], region inference [8], subsumption elimination [9,11], and unboxing [19,24,29].…”
Section: Introductionmentioning
confidence: 99%