## Strongly Typed Flow-Directed Representation Transformations (Extended Abstract) (1997)

### Cached

### Download Links

- [swissnet.ai.mit.edu]
- [types.bu.edu]
- [oak.bc.edu]
- [cs.wellesley.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | In ICFP ’97 [ICFP97 |

Citations: | 29 - 13 self |

### BibTeX

@INPROCEEDINGS{Dimock97stronglytyped,

author = {Allyn Dimock and Robert Muller and Franklyn Turbak and J. B. Wells},

title = {Strongly Typed Flow-Directed Representation Transformations (Extended Abstract)},

booktitle = {In ICFP ’97 [ICFP97},

year = {1997},

pages = {11--24},

publisher = {ACM Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

We present a new framework for transforming data representations in a strongly typed intermediate language. Our method allows both value producers (sources) and value consumers (sinks) to support multiple representations, automatically inserting any required code. Specialized representations can be easily chosen for particular source/sink pairs. The framework is based on these techniques: 1. Flow annotated types encode the "flows-from" (source) and "flows-to" (sink) information of a flow graph. 2. Intersection and union types support (a) encoding precise flow information, (b) separating flow information so that transformations can be well typed, (c) automatically reorganizing flow paths to enable multiple representations. As an instance of our framework, we provide a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions.

### Citations

620 |
Compiling with Continuations
- Appel
- 1992
(Show Context)
Citation Context ...he same interface. There are many studies of closure conversion which focus on the data structures used for variable lookup and the tradeo#s between sharing and time to lookup the value of a variable =-=[17, 25, 4, 23]-=-. Our framework abstracts out data structure representation issues. Jagannathan and Wright discuss flow-directed inlining in an untyped system [13]. Their paper examines heuristics for selecting appli... |

518 | Lambda calculi with types - Barendregt - 1992 |

195 | ORBIT: An Optimizing Compiler for Scheme
- Kranz
(Show Context)
Citation Context ...guages, a particularly important representation transformation is closure conversion, which implements a function value as a closure, packaging the function code with the values of its free variables =-=[17, 5, 23, 28, 18]-=-. # This author's work was done at Boston University and was partially supported by NSF grants CCR--9113196 and CCR--9417382 and EPSRC grant GR/L 36963. This paper appears in the Proceedings of the 19... |

187 | Soft typing with conditional types
- Aiken, Wimmers, et al.
- 1994
(Show Context)
Citation Context ...elate abstraction occurrences (function definitions) to application occurrences (function call sites), or relate abstractions which may be called to the abstractions from whose bodies they are called =-=[3, 6, 11, 12, 24]-=-. In our intermediate language # CIL , as in the work of Heintze [11] and Banerjee [6], flow information is encoded as annotations on arrow types. The Flow Analysis (FA) stage takes the input program ... |

154 | Typed closure conversion
- Minamide, Morrisett, et al.
- 1996
(Show Context)
Citation Context ...guages, a particularly important representation transformation is closure conversion, which implements a function value as a closure, packaging the function code with the values of its free variables =-=[17, 5, 23, 28, 18]-=-. # This author's work was done at Boston University and was partially supported by NSF grants CCR--9113196 and CCR--9417382 and EPSRC grant GR/L 36963. This paper appears in the Proceedings of the 19... |

128 |
Rabbit: A compiler for Scheme
- Steele
- 1978
(Show Context)
Citation Context ...he same interface. There are many studies of closure conversion which focus on the data structures used for variable lookup and the tradeo#s between sharing and time to lookup the value of a variable =-=[17, 25, 4, 23]-=-. Our framework abstracts out data structure representation issues. Jagannathan and Wright discuss flow-directed inlining in an untyped system [13]. Their paper examines heuristics for selecting appli... |

120 | The Glasgow Haskell compiler: A technical overview
- Jones, Hall, et al.
- 1993
(Show Context)
Citation Context ...de a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions. 1 Introduction Typed intermediate languages =-=[20, 19, 23, 30]-=- support typedirected transformations while simultaneously increasing confidence in the correctness of such transformations. In this paper, we focus on representation transformations, i.e., those that... |

111 | Continuation-passing, closure-passing style
- Appel, Jim
- 1989
(Show Context)
Citation Context ...guages, a particularly important representation transformation is closure conversion, which implements a function value as a closure, packaging the function code with the values of its free variables =-=[17, 5, 23, 28, 18]-=-. # This author's work was done at Boston University and was partially supported by NSF grants CCR--9113196 and CCR--9417382 and EPSRC grant GR/L 36963. This paper appears in the Proceedings of the 19... |

109 | Design of the programming language Forsythe - Reynolds - 1996 |

102 | Compiling With Types
- Morrisett
- 1995
(Show Context)
Citation Context ...de a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions. 1 Introduction Typed intermediate languages =-=[20, 19, 23, 30]-=- support typedirected transformations while simultaneously increasing confidence in the correctness of such transformations. In this paper, we focus on representation transformations, i.e., those that... |

93 | What are principal typings and what are they good for
- Jim
- 1996
(Show Context)
Citation Context ... applying the RT algorithm preserves the meaning of the program. 4 Related Work General research into the use of intersection types which has influenced us includes the work of Van Bakel [27] and Jim =-=[14, 15]-=-. Relevant research on both intersection and union types includes the work by Pierce [21], Aiken, Wimmers, and Lakshman [3], Trifonov, Smith, and Eifrig [26, 9], and Barbanera, Dezani-Ciancaglini, and... |

83 | Type inference for recursively constrained types and its application to OOP
- Eifrig, Smith, et al.
- 1995
(Show Context)
Citation Context ...des the work of Van Bakel [27] and Jim [14, 15]. Relevant research on both intersection and union types includes the work by Pierce [21], Aiken, Wimmers, and Lakshman [3], Trifonov, Smith, and Eifrig =-=[26, 9]-=-, and Barbanera, Dezani-Ciancaglini, and de'Liguoro [7]. Of the above, only Pierce considers intersection and union types in an explicitly typed language. Even that is somewhat distant from our work b... |

76 | Lightweight closure conversion
- Steckler, Wand
- 1997
(Show Context)
Citation Context |

73 | S.: A Unified Treatment of Flow Analysis in Higher-Order Languages
- Jagannathan, Weeks
- 1995
(Show Context)
Citation Context ...elate abstraction occurrences (function definitions) to application occurrences (function call sites), or relate abstractions which may be called to the abstractions from whose bodies they are called =-=[3, 6, 11, 12, 24]-=-. In our intermediate language # CIL , as in the work of Heintze [11] and Banerjee [6], flow information is encoded as annotations on arrow types. The Flow Analysis (FA) stage takes the input program ... |

59 | Subtyping constrained types
- Trifonov, Smith
- 1996
(Show Context)
Citation Context ...des the work of Van Bakel [27] and Jim [14, 15]. Relevant research on both intersection and union types includes the work by Pierce [21], Aiken, Wimmers, and Lakshman [3], Trifonov, Smith, and Eifrig =-=[26, 9]-=-, and Barbanera, Dezani-Ciancaglini, and de'Liguoro [7]. Of the above, only Pierce considers intersection and union types in an explicitly typed language. Even that is somewhat distant from our work b... |

58 |
Intersection and union types: Syntax and semantics
- Barbanera, Dezani-Ciancaglini, et al.
- 1995
(Show Context)
Citation Context ...esearch on both intersection and union types includes the work by Pierce [21], Aiken, Wimmers, and Lakshman [3], Trifonov, Smith, and Eifrig [26, 9], and Barbanera, Dezani-Ciancaglini, and de'Liguoro =-=[7]-=-. Of the above, only Pierce considers intersection and union types in an explicitly typed language. Even that is somewhat distant from our work because Pierce includes a general subtyping relation on ... |

54 | A modular, polyvariant and type-based closure analysis
- Banerjee
- 1997
(Show Context)
Citation Context ... "plumbing" of the program must be transformed in such a way that the meaning of the program is preserved. In this paper, we address the plumbing problem while using existing flow analysis t=-=echniques [6]-=-. We present a framework for representation transformation that supports multiple representations within a strongly typed language. The framework is both type-directed and flow-directed in the sense t... |

50 | Programming with Intersection Types, Union Types, and Polymorphism
- Pierce
- 1991
(Show Context)
Citation Context ...rch into the use of intersection types which has influenced us includes the work of Van Bakel [27] and Jim [14, 15]. Relevant research on both intersection and union types includes the work by Pierce =-=[21]-=-, Aiken, Wimmers, and Lakshman [3], Trifonov, Smith, and Eifrig [26, 9], and Barbanera, Dezani-Ciancaglini, and de'Liguoro [7]. Of the above, only Pierce considers intersection and union types in an e... |

47 | Control-flow analysis and type systems
- Heintze
- 1995
(Show Context)
Citation Context ... annotations on types can be used to pair up sources and sinks. We then use this information to make pairwise representation decisions. Flows-from annotations on types have been used in previous work =-=[11, 6]-=-, but we are the first to use them in combination with flows-to annotations. . We solve the plumbing problem for multiple representations using intersection and union types. We introduce virtual tuple... |

46 | Intersection Type Disciplines in Lambda Calculus and Applicative Term Rewriting Systems
- Bakel
- 1993
(Show Context)
Citation Context ...t proved that applying the RT algorithm preserves the meaning of the program. 4 Related Work General research into the use of intersection types which has influenced us includes the work of Van Bakel =-=[27]-=- and Jim [14, 15]. Relevant research on both intersection and union types includes the work by Pierce [21], Aiken, Wimmers, and Lakshman [3], Trifonov, Smith, and Eifrig [26, 9], and Barbanera, Dezani... |

41 | Flow-directed Inlining
- Jagannathan, Wright
- 1996
(Show Context)
Citation Context ...information is required to match up the sources and sinks that share a representation. Because there is growing recognition that such flow analyses are necessary for optimizing higher-order languages =-=[24, 22, 13], this req-=-uirement is not too burdensome. 2. To distinguish between multiple representations, it is necessary to separate data flow paths. The "plumbing" of the program must be transformed in such a w... |

28 | A calculus with polymorphic and polyvariant flow types - Wells, Dimock, et al. |

26 | Rank 2 type systems and recursive definitions
- Jim
- 1993
(Show Context)
Citation Context ... applying the RT algorithm preserves the meaning of the program. 4 Related Work General research into the use of intersection types which has influenced us includes the work of Van Bakel [27] and Jim =-=[14, 15]-=-. Relevant research on both intersection and union types includes the work by Pierce [21], Aiken, Wimmers, and Lakshman [3], Trifonov, Smith, and Eifrig [26, 9], and Barbanera, Dezani-Ciancaglini, and... |

25 | Type systems for closure conversions
- Hannan
- 1995
(Show Context)
Citation Context ...ial cases. -- We are the first to perform function transformations using multiple representations with multiple interfaces in a strongly typed language. Earlier approaches to typed closure conversion =-=[10, 18, 19]-=- have required all function representations to use the same application protocol. The only flowbased closure conversion work known to us that supports multiple application protocols is expressed in an... |

22 | A typed intermediate language for flow-directed compilation
- Wells, Dimock, et al.
(Show Context)
Citation Context ...de a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions. 1 Introduction Typed intermediate languages =-=[20, 19, 23, 30]-=- support typedirected transformations while simultaneously increasing confidence in the correctness of such transformations. In this paper, we focus on representation transformations, i.e., those that... |

18 | Compiling Standard ML for Efficient Execution on Modern Machines
- Shao
- 1994
(Show Context)
Citation Context ...de a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions. 1 Introduction Typed intermediate languages =-=[19, 18, 25, 32]-=- support typedirected transformations while simultaneously increasing confidence in the correctness of such transformations. In this paper, we focus on representation transformations, i.e., those that... |

14 |
Control Flow Analysis of Higher Order Languages
- Shivers
- 1991
(Show Context)
Citation Context ...information is required to match up the sources and sinks that share a representation. Because there is growing recognition that such flow analyses are necessary for optimizing higher-order languages =-=[24, 22, 13], this req-=-uirement is not too burdensome. 2. To distinguish between multiple representations, it is necessary to separate data flow paths. The "plumbing" of the program must be transformed in such a w... |

12 |
New notions of reduction and non-semantic proofs of fistrong normalisation in typed -calculi
- Kfoury, Wells
- 1994
(Show Context)
Citation Context ...nd implement a more efficient algorithm. An important practical issue in compiling with types is controlling the size of the intermediate representations. Our current language, following the style of =-=[15]-=-, duplicates terms when it duplicates types. Our language is convenient for specifying our framework, but for implementation a considerable size savings can be obtained by using a typed calculus with ... |

9 | New notions of reduction and non-semantic proofs of -strong normalization in typed -calculi
- Kfoury, Wells
- 1994
(Show Context)
Citation Context ... and implement a more e#cient algorithm. An important practical issue in compiling with types is controlling the size of the intermediate representations. Our current language, following the style of =-=[16]-=-, duplicates terms when it duplicates types. Our language is convenient for specifying our framework, but for implementation a considerable size savings can be obtained by using a typed calculus with ... |

6 | Combining closure conversion with closure analysis using algebraic types - TOLMACH - 1997 |

4 | Iterative flow analysis
- Plevyak, Chien
- 1995
(Show Context)
Citation Context ...information is required to match up the sources and sinks that share a representation. Because there is growing recognition that such flow analyses are necessary for optimizing higher-order languages =-=[24, 22, 13], this req-=-uirement is not too burdensome. 2. To distinguish between multiple representations, it is necessary to separate data flow paths. The "plumbing" of the program must be transformed in such a w... |

4 |
Compiling Standard ML for ecient execution on modern machines
- Shao
- 1994
(Show Context)
Citation Context |

3 |
Intersection types revisited in the Church style
- Wells
- 1996
(Show Context)
Citation Context ...Our language is convenient for specifying our framework, but for implementation a considerable size savings can be obtained by using a typed calculus with intersection and union types in the style of =-=[29]-=-. Finally, we plan to study the interaction of our current approach with separate compilation. 6 Acknowledgements We would like to thank Mitch Wand, Will Clinger, Paul Steckler and several anonymous r... |

1 |
New notions of reduction and nonsemantic proofs of r'-strong normalization in typed y"-calculi
- Kfoury, Wells
- 1995
(Show Context)
Citation Context ...nd implement a more efficient algorithm. An important practical issue in compiling with types is controlling the size of the intermediate representations. Our current language, following the style of =-=[16]-=-, duplicates terms when it duplicates types. Our language is convenient for specifying our framework, but for implementation a considerable size savings can be obtained by using a typed calculus with ... |