Compiler optimizations are critical to the efficiency of modern functional programs. At the same time, optimizations that unintentionally change the semantics of programs can systematically introduce errors into programs that pass through them. The question of how to best verify that optimizations and other program transformations preserve semantics is an important one, given the potential for error introduction. Dependent types allow us to prove that properties about our programs are correct, as well as to design data types and interpreters in such a way that they are correct-by-construction. In this thesis, we explore the use of dependent types and intrinsically-typed definitional interpreters in progressively larger subsets of Monadic In...
Bahr and Hutton recently developed a new approach to calculating correct compilers directly from spe...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
AbstractWe demonstrate a method for describing data-flow analyses based program optimizations as com...
Compiler optimizations are critical to the efficiency of modern functional programs. At the same tim...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
This paper describes MIL, a monadic intermediate language that is designed for use in optimizing c...
Most existing programming languages provide little support to formally state and prove properties ab...
We present an automated technique for generating compiler op-timizations from examples of concrete p...
AbstractSemantics preservation between source and target program is the commonly accepted minimum re...
Abstract. In this article, we describe a framework for formally verify-ing the correctness of compil...
AbstractA compiler optimization is sound if the optimized program that it produces is semantically e...
. We show that compiler optimisations based on strictness analysis can be expressed formally in the ...
AbstractSemantics preservation between source and target program is the commonly accepted minimum re...
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for i...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
Bahr and Hutton recently developed a new approach to calculating correct compilers directly from spe...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
AbstractWe demonstrate a method for describing data-flow analyses based program optimizations as com...
Compiler optimizations are critical to the efficiency of modern functional programs. At the same tim...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
This paper describes MIL, a monadic intermediate language that is designed for use in optimizing c...
Most existing programming languages provide little support to formally state and prove properties ab...
We present an automated technique for generating compiler op-timizations from examples of concrete p...
AbstractSemantics preservation between source and target program is the commonly accepted minimum re...
Abstract. In this article, we describe a framework for formally verify-ing the correctness of compil...
AbstractA compiler optimization is sound if the optimized program that it produces is semantically e...
. We show that compiler optimisations based on strictness analysis can be expressed formally in the ...
AbstractSemantics preservation between source and target program is the commonly accepted minimum re...
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for i...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
Bahr and Hutton recently developed a new approach to calculating correct compilers directly from spe...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
AbstractWe demonstrate a method for describing data-flow analyses based program optimizations as com...