Traditional optimizers have viewed imperative functions as a sequence or graph of commands. Some of these commands interact with the heap, throw exceptions, or interact with the outside world. Other commands simply read and modify local variables. In this dissertation, I take a different perspective on imperative functions. I view them as mathematical expressions, albeit with some quirks. These mathematical expressions have no need for local variables, making the flow of computation direct and so easier to reason about and manipulate. I will show how this enables equational techniques for program optimization, translation validation, and optimizer extensibilit
One of the appeals of pure functional programming is that it is so amenable to equational reasoning....
We argue for the benefits of relations over functions for modelling programs, and even more so for m...
Introduction Imperative program optimizations based on data-flow analyses are usually presented in a...
Equality plays an important role in our life, and we practise equational reasoning everyday. We can ...
In this dissertation, I describe the Peggy system for performing program optimization and translatio...
Abstract. Optimizations in a traditional compiler are applied sequentially, with each optimization d...
Abstract. Although functional as well as logic languages use equality to discriminate between logica...
Automatic optimizers for computer programs work with a fixed list of rote transformations, while hu...
Programmers don't just have to write programs, they are have to reason about them. Programming langu...
Abstract. The idea of constraint based program analysis is to translate a given program into a set o...
Functional programs are particularly well suited to formal manipulation by equational reasoning. In ...
Our goal is to develop a new and highly flexible approach to program optimization. Instead of apply...
textabstractA variety of disparate methods have traditionally been used to define the execution sema...
One of the appeals of pure functional programming is that it is so amenable to equational reasoning....
We provide here a computational interpretation of first-order logic based on a constructive interpre...
One of the appeals of pure functional programming is that it is so amenable to equational reasoning....
We argue for the benefits of relations over functions for modelling programs, and even more so for m...
Introduction Imperative program optimizations based on data-flow analyses are usually presented in a...
Equality plays an important role in our life, and we practise equational reasoning everyday. We can ...
In this dissertation, I describe the Peggy system for performing program optimization and translatio...
Abstract. Optimizations in a traditional compiler are applied sequentially, with each optimization d...
Abstract. Although functional as well as logic languages use equality to discriminate between logica...
Automatic optimizers for computer programs work with a fixed list of rote transformations, while hu...
Programmers don't just have to write programs, they are have to reason about them. Programming langu...
Abstract. The idea of constraint based program analysis is to translate a given program into a set o...
Functional programs are particularly well suited to formal manipulation by equational reasoning. In ...
Our goal is to develop a new and highly flexible approach to program optimization. Instead of apply...
textabstractA variety of disparate methods have traditionally been used to define the execution sema...
One of the appeals of pure functional programming is that it is so amenable to equational reasoning....
We provide here a computational interpretation of first-order logic based on a constructive interpre...
One of the appeals of pure functional programming is that it is so amenable to equational reasoning....
We argue for the benefits of relations over functions for modelling programs, and even more so for m...
Introduction Imperative program optimizations based on data-flow analyses are usually presented in a...