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.
In this paper we introduce M-LISP, a dialect of LISP designed with an eye toward reconciling LISP's metalinguistics power with the structural style of operational semantics advocated by Plotkin [28]. We begin by reviewing the original defimtion of LISP [20] in an attempt to clarify the source of its metalinguistics power. We find that it arises from a problematic clause in this definition. We then define the abstract syntax and operational semantics of M-LISP, essentially a hybrid of M-expression LISP and Scheme. Next, we tie the operational semantics to the corresponding equational logic. As usual, provable equality in the logic implies operational equality. Having established this framework, we then extend M-LISP with the metalinguistics eual and rezfy operators (the latter is a nonstrict operator that converts its argument to its metalanguage representation). These operators encapsulate the metalinguistics representation conversions that occur globally in S-expression LISP. We show that the naive versions of these operators render LISPS equational logic inconsistent. On the positive side, we show that a naturally restricted form of the eual operator is confluent and therefore a conservative extension of M-LISP.Unfortunately, we must weaken the logic considerably to obtain a consistent theory of reification.
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.
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
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.