Automatic optimizers for computer programs work with a fixed list of rote transformations, while human programmers can go on to derive new optimizations from broad and intuitive principles if known transformations prove inadequate. This dissertation investigates the possibility that principled optimization can be automated, focusing on a single principle (the principle that programs should not do anything unnecessary) and a single program domain (the domain of purely functional, first-order programs). Three questions are explored: How can the principle be formalized? How can violations of the principle be detected? How can violations be repaired? The trace grammar is a new representation for first-order functional programs. It perm...
This paper presents a formal model of tracing for functional programs based on a small-step operatio...
of the Ph.D. Dissertation Computer systems play an important role in the modern information society...
The use of proof plans -formal patterns of reasoning for theorem proving -to control the {automatic...
Our goal is to develop a new and highly flexible approach to program optimization. Instead of apply...
AbstractA compiler optimization is sound if the optimized program that it produces is semantically e...
Abstract. Writing performance-critical programs can be frustrating because optimizing compilers for ...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
We argue for the benefits of relations over functions for modelling programs, and even more so for m...
We present techniques that enable higher-order functional computations to “explain” their work by an...
Two mappings from attribute grammars to lazy functional programs are defined. One of these mappings ...
We present an automated technique for generating compiler op-timizations from examples of concrete p...
Abstract. In this article, we describe a framework for formally verify-ing the correctness of compil...
We present techniques that enable higher-order functional compu-tations to “explain ” their work by ...
The functional programming style describes computations concisely. The applicative nature of functio...
technical reportAn attribute grammar combines the standard context-free grammar that defines the syn...
This paper presents a formal model of tracing for functional programs based on a small-step operatio...
of the Ph.D. Dissertation Computer systems play an important role in the modern information society...
The use of proof plans -formal patterns of reasoning for theorem proving -to control the {automatic...
Our goal is to develop a new and highly flexible approach to program optimization. Instead of apply...
AbstractA compiler optimization is sound if the optimized program that it produces is semantically e...
Abstract. Writing performance-critical programs can be frustrating because optimizing compilers for ...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
We argue for the benefits of relations over functions for modelling programs, and even more so for m...
We present techniques that enable higher-order functional computations to “explain” their work by an...
Two mappings from attribute grammars to lazy functional programs are defined. One of these mappings ...
We present an automated technique for generating compiler op-timizations from examples of concrete p...
Abstract. In this article, we describe a framework for formally verify-ing the correctness of compil...
We present techniques that enable higher-order functional compu-tations to “explain ” their work by ...
The functional programming style describes computations concisely. The applicative nature of functio...
technical reportAn attribute grammar combines the standard context-free grammar that defines the syn...
This paper presents a formal model of tracing for functional programs based on a small-step operatio...
of the Ph.D. Dissertation Computer systems play an important role in the modern information society...
The use of proof plans -formal patterns of reasoning for theorem proving -to control the {automatic...