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)

Open PDF

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

Tags

Communities of Interest

  • Energy and Power Technologies
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Air Force
  • Algorithms
  • Artificial Intelligence
  • Assembly Languages
  • Computations
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Databases
  • Debugging
  • Hash Tables
  • Language
  • Lisp Programming Language
  • Machine Languages
  • Operating Systems
  • Programming Languages

Fields of Study

  • Computer science

Readers

  • Computer Science.
  • Mathematics or Statistics
  • Theoretical Analysis.