We present λCIL, a typed λ-calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higher-order polymorphic programming languages. The key innovation of λCIL is a novel formulation of intersection and union types and flow labels on both terms and types. These flow types can encode polyvariant control and data flow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data representations in a strongly typed setting. Since λCIL enjoys confluence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations.
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.
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.
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.
Over the last several years, much interesting work has been done in modelling object-oriented programming languages in terms of extensions of the bounded second-order lambda calculus, Fr. Unfortunately, it has recently been shown by Pierce ([Pie92]) that type checking F< is undecidable. Moreover, he showed that the undecidability arises in t,he seemingly simpler problem of determining whether one type is a subtype of another.In [Bru93a, Bru93b], the fist author introduced a statically-typed, functional, object-oriented programming language, TOOPL, which supports classes, objects, methods, instance variables, subtypes, and inheritance.The semantics of TOOPL is based on F<, so the question arises whether type checking in this language is decidable. In this paper we show that type checking for TOOPLE, a minor variant of TOOPL (Typed Object-OrientedProgramming Language), is decidable. The proof proceeds by showing that subtyping is decidable, that all terms of TOOPLE have minimum types (which are in fact computable), and then using these two results to show that type checking is decidable.Our algorithm fails to be polynomial in the size of the term because the size of its type can be exponential in the size of the term. Nevertheless, it performs well in practice.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.