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 techniques:1.
2.F1OVIannotated types encode the 'flows-from" (source) and "flows-to" (sink) information of a flow graph.Intersection and union types support (a) encoding prc ise flow information, (b) separating flow information so that transformations can be well typed, (c) automatically reorganizing flow paths to enable multiple representations.As au instance of our framework, we provide a function rep resentation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions. Intersection me Dimiplinee in Lambda Calcuiua and Applicative Term Rewriting S@errw. PhD thesis, University of Nijmegen, 1993. Anindya Banerjee. A modular, polyvariarrt, and type-based closure analysis. Type inference for recursively constrained types and its application to 00P. In Proc. 1995 Mathematical Foundations of Programming Semantics Conf. Elsevier, 1995. John Hannan. TvDe svstems for closure conversion. In kVorkhop on~ea '~or~rogram Anatuaia, pages 48-62, 1995. DAIMI PB-493.