Intermediate Language

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 47451 Experts worldwide ranked by ideXlab platform

J B Wells - One of the best experts on this subject based on the ideXlab platform.

  • Abstract Strongly Typed Flow-Directed Representation Transformations
    2008
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    Abstract:

    Topic Areas: compilation, lambda calculus, intersection and union types, typed flow analysis, closure conversion, inlining 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

  • program representation size in an Intermediate Language with intersection and union types
    Lecture Notes in Computer Science, 2000
    Co-Authors: Allyn Dimock, Ian Westmacott, Robert Muller, Franklyn Turbak, J B Wells, Jeffrey Considine
    Abstract:

    The CIL compiler for core Standard ML compiles whole programs using a novel typed Intermediate Language (TIL) with intersection and union types and flow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compile-time space costs that are potentially much greater than are incurred in TILs employing type-level abstraction or quantification. In this paper, we present empirical data on the compile-time space costs of using CIL as an Intermediate Language. The data shows that these costs can be made tractable by using sufficiently fine-grained flow analyses together with standard hash-consing techniques. The data also suggests that nonduplicating formulations of intersection (and union) types would not achieve significantly better space complexity.

  • strongly typed flow directed representation transformations extended abstract
    International Conference on Functional Programming, 1997
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    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.

Allyn Dimock - One of the best experts on this subject based on the ideXlab platform.

  • Abstract Strongly Typed Flow-Directed Representation Transformations
    2008
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    Abstract:

    Topic Areas: compilation, lambda calculus, intersection and union types, typed flow analysis, closure conversion, inlining 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

  • program representation size in an Intermediate Language with intersection and union types
    Lecture Notes in Computer Science, 2000
    Co-Authors: Allyn Dimock, Ian Westmacott, Robert Muller, Franklyn Turbak, J B Wells, Jeffrey Considine
    Abstract:

    The CIL compiler for core Standard ML compiles whole programs using a novel typed Intermediate Language (TIL) with intersection and union types and flow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compile-time space costs that are potentially much greater than are incurred in TILs employing type-level abstraction or quantification. In this paper, we present empirical data on the compile-time space costs of using CIL as an Intermediate Language. The data shows that these costs can be made tractable by using sufficiently fine-grained flow analyses together with standard hash-consing techniques. The data also suggests that nonduplicating formulations of intersection (and union) types would not achieve significantly better space complexity.

  • strongly typed flow directed representation transformations extended abstract
    International Conference on Functional Programming, 1997
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    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.

Robert Muller - One of the best experts on this subject based on the ideXlab platform.

  • Abstract Strongly Typed Flow-Directed Representation Transformations
    2008
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    Abstract:

    Topic Areas: compilation, lambda calculus, intersection and union types, typed flow analysis, closure conversion, inlining 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

  • program representation size in an Intermediate Language with intersection and union types
    Lecture Notes in Computer Science, 2000
    Co-Authors: Allyn Dimock, Ian Westmacott, Robert Muller, Franklyn Turbak, J B Wells, Jeffrey Considine
    Abstract:

    The CIL compiler for core Standard ML compiles whole programs using a novel typed Intermediate Language (TIL) with intersection and union types and flow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compile-time space costs that are potentially much greater than are incurred in TILs employing type-level abstraction or quantification. In this paper, we present empirical data on the compile-time space costs of using CIL as an Intermediate Language. The data shows that these costs can be made tractable by using sufficiently fine-grained flow analyses together with standard hash-consing techniques. The data also suggests that nonduplicating formulations of intersection (and union) types would not achieve significantly better space complexity.

  • strongly typed flow directed representation transformations extended abstract
    International Conference on Functional Programming, 1997
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    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.

Franklyn Turbak - One of the best experts on this subject based on the ideXlab platform.

  • Abstract Strongly Typed Flow-Directed Representation Transformations
    2008
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    Abstract:

    Topic Areas: compilation, lambda calculus, intersection and union types, typed flow analysis, closure conversion, inlining 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

  • program representation size in an Intermediate Language with intersection and union types
    Lecture Notes in Computer Science, 2000
    Co-Authors: Allyn Dimock, Ian Westmacott, Robert Muller, Franklyn Turbak, J B Wells, Jeffrey Considine
    Abstract:

    The CIL compiler for core Standard ML compiles whole programs using a novel typed Intermediate Language (TIL) with intersection and union types and flow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compile-time space costs that are potentially much greater than are incurred in TILs employing type-level abstraction or quantification. In this paper, we present empirical data on the compile-time space costs of using CIL as an Intermediate Language. The data shows that these costs can be made tractable by using sufficiently fine-grained flow analyses together with standard hash-consing techniques. The data also suggests that nonduplicating formulations of intersection (and union) types would not achieve significantly better space complexity.

  • strongly typed flow directed representation transformations extended abstract
    International Conference on Functional Programming, 1997
    Co-Authors: Allyn Dimock, Robert Muller, Franklyn Turbak, J B Wells
    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.

Albert Shaqiri - One of the best experts on this subject based on the ideXlab platform.

  • A Provably Correct Compilation of Functional Languages into Scripting Languages
    Alexandru Ioan Cuza University of Iasi, 2017
    Co-Authors: Paola Giannini, Albert Shaqiri
    Abstract:

    In this paper we consider the problem of translating core F#, a typed functional Language including mutable variables and exception handling, into scripting Languages such as JavaScript or Python. In previous work, we abstracted the most significant characteristics of scripting Languages in an Intermediate Language (IL for short). IL is a block-structured imperative Language in which a definition of a name does not have to statically precede its use. We define a bigstep operational semantics for core F# and for IL and formalise the translation of F# expressions into IL. The main contribution of the paper is the proof of correctness of the given translation, which is done by showing that the evaluation of a well-typed F# program converges to a primitive value if and only if the evaluation of its translation into IL converges to the same value

  • compiling functional to scripting Languages
    International Conference on Software Technologies, 2013
    Co-Authors: Paola Giannini, Albert Shaqiri
    Abstract:

    In this paper we consider the problem of translating a core typed functional Language, F#(including mutable variables), into scripting Languages such as JavaScript or Python. We abstract the most significant characteristics of such scripting Languages in an Intermediate Language (IL for short), which is an imperative Language, with constructs for handling safely pieces of code containing free variables. We define an operational semantics for IL and highlight the proof of correctness of the translation.