Program Compilers

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 10914 Experts worldwide ranked by ideXlab platform

Viktor Vafeiadis - One of the best experts on this subject based on the ideXlab platform.

  • pilsner a compositionally verified compiler for a higher order imperative language
    International Conference on Functional Programming, 2015
    Co-Authors: Georg Neis, Janoliver Kaiser, Craig Mclaughlin, Derek Dreyer, Viktor Vafeiadis
    Abstract:

    Compiler verification is essential for the construction of fully verified software, but most prior work (such as CompCert) has focused on verifying whole-Program Compilers. To support separate compilation and to enable linking of results from different verified Compilers, it is important to develop a compositional notion of compiler correctness that is modular (preserved under linking), transitive (supports multi-pass compilation), and flexible (applicable to Compilers that use different intermediate languages or employ non-standard Program transformations). In this paper, building on prior work of Hur et al., we develop a novel approach to compositional compiler verification based on parametric inter-language simulations (PILS). PILS are modular: they enable compiler verification in a manner that supports separate compilation. PILS are transitive: we use them to verify Pilsner, a simple (but non-trivial) multi-pass optimizing compiler (Programmed in Coq) from an ML-like source language S to an assembly-like target language T, going through a CPS-based intermediate language. Pilsner is the first multi-pass compiler for a higher-order imperative language to be compositionally verified. Lastly, PILS are flexible: we use them to additionally verify (1) Zwickel, a direct non-optimizing compiler for S, and (2) a hand-coded self-modifying T module, proven correct w.r.t. an S-level specification. The output of Zwickel and the self-modifying T module can then be safely linked together with the output of Pilsner. All together, this has been a significant undertaking, involving several person-years of work and over 55,000 lines of Coq.

Georg Neis - One of the best experts on this subject based on the ideXlab platform.

  • pilsner a compositionally verified compiler for a higher order imperative language
    International Conference on Functional Programming, 2015
    Co-Authors: Georg Neis, Janoliver Kaiser, Craig Mclaughlin, Derek Dreyer, Viktor Vafeiadis
    Abstract:

    Compiler verification is essential for the construction of fully verified software, but most prior work (such as CompCert) has focused on verifying whole-Program Compilers. To support separate compilation and to enable linking of results from different verified Compilers, it is important to develop a compositional notion of compiler correctness that is modular (preserved under linking), transitive (supports multi-pass compilation), and flexible (applicable to Compilers that use different intermediate languages or employ non-standard Program transformations). In this paper, building on prior work of Hur et al., we develop a novel approach to compositional compiler verification based on parametric inter-language simulations (PILS). PILS are modular: they enable compiler verification in a manner that supports separate compilation. PILS are transitive: we use them to verify Pilsner, a simple (but non-trivial) multi-pass optimizing compiler (Programmed in Coq) from an ML-like source language S to an assembly-like target language T, going through a CPS-based intermediate language. Pilsner is the first multi-pass compiler for a higher-order imperative language to be compositionally verified. Lastly, PILS are flexible: we use them to additionally verify (1) Zwickel, a direct non-optimizing compiler for S, and (2) a hand-coded self-modifying T module, proven correct w.r.t. an S-level specification. The output of Zwickel and the self-modifying T module can then be safely linked together with the output of Pilsner. All together, this has been a significant undertaking, involving several person-years of work and over 55,000 lines of Coq.

Janoliver Kaiser - One of the best experts on this subject based on the ideXlab platform.

  • pilsner a compositionally verified compiler for a higher order imperative language
    International Conference on Functional Programming, 2015
    Co-Authors: Georg Neis, Janoliver Kaiser, Craig Mclaughlin, Derek Dreyer, Viktor Vafeiadis
    Abstract:

    Compiler verification is essential for the construction of fully verified software, but most prior work (such as CompCert) has focused on verifying whole-Program Compilers. To support separate compilation and to enable linking of results from different verified Compilers, it is important to develop a compositional notion of compiler correctness that is modular (preserved under linking), transitive (supports multi-pass compilation), and flexible (applicable to Compilers that use different intermediate languages or employ non-standard Program transformations). In this paper, building on prior work of Hur et al., we develop a novel approach to compositional compiler verification based on parametric inter-language simulations (PILS). PILS are modular: they enable compiler verification in a manner that supports separate compilation. PILS are transitive: we use them to verify Pilsner, a simple (but non-trivial) multi-pass optimizing compiler (Programmed in Coq) from an ML-like source language S to an assembly-like target language T, going through a CPS-based intermediate language. Pilsner is the first multi-pass compiler for a higher-order imperative language to be compositionally verified. Lastly, PILS are flexible: we use them to additionally verify (1) Zwickel, a direct non-optimizing compiler for S, and (2) a hand-coded self-modifying T module, proven correct w.r.t. an S-level specification. The output of Zwickel and the self-modifying T module can then be safely linked together with the output of Pilsner. All together, this has been a significant undertaking, involving several person-years of work and over 55,000 lines of Coq.

Craig Mclaughlin - One of the best experts on this subject based on the ideXlab platform.

  • pilsner a compositionally verified compiler for a higher order imperative language
    International Conference on Functional Programming, 2015
    Co-Authors: Georg Neis, Janoliver Kaiser, Craig Mclaughlin, Derek Dreyer, Viktor Vafeiadis
    Abstract:

    Compiler verification is essential for the construction of fully verified software, but most prior work (such as CompCert) has focused on verifying whole-Program Compilers. To support separate compilation and to enable linking of results from different verified Compilers, it is important to develop a compositional notion of compiler correctness that is modular (preserved under linking), transitive (supports multi-pass compilation), and flexible (applicable to Compilers that use different intermediate languages or employ non-standard Program transformations). In this paper, building on prior work of Hur et al., we develop a novel approach to compositional compiler verification based on parametric inter-language simulations (PILS). PILS are modular: they enable compiler verification in a manner that supports separate compilation. PILS are transitive: we use them to verify Pilsner, a simple (but non-trivial) multi-pass optimizing compiler (Programmed in Coq) from an ML-like source language S to an assembly-like target language T, going through a CPS-based intermediate language. Pilsner is the first multi-pass compiler for a higher-order imperative language to be compositionally verified. Lastly, PILS are flexible: we use them to additionally verify (1) Zwickel, a direct non-optimizing compiler for S, and (2) a hand-coded self-modifying T module, proven correct w.r.t. an S-level specification. The output of Zwickel and the self-modifying T module can then be safely linked together with the output of Pilsner. All together, this has been a significant undertaking, involving several person-years of work and over 55,000 lines of Coq.

Derek Dreyer - One of the best experts on this subject based on the ideXlab platform.

  • pilsner a compositionally verified compiler for a higher order imperative language
    International Conference on Functional Programming, 2015
    Co-Authors: Georg Neis, Janoliver Kaiser, Craig Mclaughlin, Derek Dreyer, Viktor Vafeiadis
    Abstract:

    Compiler verification is essential for the construction of fully verified software, but most prior work (such as CompCert) has focused on verifying whole-Program Compilers. To support separate compilation and to enable linking of results from different verified Compilers, it is important to develop a compositional notion of compiler correctness that is modular (preserved under linking), transitive (supports multi-pass compilation), and flexible (applicable to Compilers that use different intermediate languages or employ non-standard Program transformations). In this paper, building on prior work of Hur et al., we develop a novel approach to compositional compiler verification based on parametric inter-language simulations (PILS). PILS are modular: they enable compiler verification in a manner that supports separate compilation. PILS are transitive: we use them to verify Pilsner, a simple (but non-trivial) multi-pass optimizing compiler (Programmed in Coq) from an ML-like source language S to an assembly-like target language T, going through a CPS-based intermediate language. Pilsner is the first multi-pass compiler for a higher-order imperative language to be compositionally verified. Lastly, PILS are flexible: we use them to additionally verify (1) Zwickel, a direct non-optimizing compiler for S, and (2) a hand-coded self-modifying T module, proven correct w.r.t. an S-level specification. The output of Zwickel and the self-modifying T module can then be safely linked together with the output of Pilsner. All together, this has been a significant undertaking, involving several person-years of work and over 55,000 lines of Coq.