Improving Programs by Source-to-Source Transformation.
Abstract
This report describes a program manipulation system which speeds up Lisp programs by rewriting them. The system can read in programs and input test sets, run the program in a controlled fashion, and propose and carry out changes to the program which may result in faster execution and better algorithms. Improvements fall into two categories: those based solely on the program text, and those which use information learned from running the program. Changes are tested for correctness (program gives the same answers) and effectiveness (actually speeds the program up). Discussed in the thesis are the programmable language-oriented editor which carries out transformation commands, the library of patterns used to organize program transformations, a data and control flow analysis routine, and tools for investigating the dynamic behavior of programs. One section is devoted to a discussion of the controversy surrounding the area of program proving, and gives arguments in support of the programmer-aided program testing techniques used in the transformation system. The system was applied to a number of programs, ranging in size from single functions to large programs twenty-five pages in length. The improved programs had execution speeds ten to fifty per cent faster than the originals. (Author)
Document Details
- Document Type
- Technical Report
- Publication Date
- Apr 01, 1977
- Accession Number
- ADA041776
Entities
People
- Paul Edward Rutter
Organizations
- University of Illinois Urbana–Champaign