Adam Brooks Webber

Learn More
We describe a new technique for optimizing first-order functional programs. Programs are represented as graph grammars, and optimization proceeds by counterexample: when a graph generated by the grammar is found to contain an unnecessary computation, the optimizer attempts to reformulates the grammar so that it never again generates any graph that contains(More)
INTRODUCTION For the past three semesters I have taught programming to beginners using a new software system called the Pascal Trainer. In closed labs the students solve a carefully planned sequence of well over a hundred simple programming exercises. The most elementary of these exercises require the student to write simple expressions; later exercises(More)
This paper presents a method called <i>relational constraint</i> for finding binary relations among the variables and constants of a program. The method constructs a table of binary relations and treats the program as a collection of constraints on tuples of relations in the table. An experimental optimizer called Thinner uses this method to analyze(More)
This paper is a progress report on our research into the problem of automatically identifying and using class invariants in object-oriented programs. We introduce an example of a class invariant in Java, and review applications for class invariants in software engineering tools and in compiler optimization. We then focus on an elementary problem of(More)
  • 1