scispace - formally typeset
Search or ask a question

Showing papers on "Source transformation published in 1977"


Journal ArticleDOI
David B. Loveman1
TL;DR: A compilation model based on the use of source-to-source program transformations is used to provide a framework for discussing issues of code generation, compilation of high level languages such as APL, and eliminating overhead commonly associated with modular structured programming.
Abstract: The use of source-to-source program transformations has proved valuable in improving program performance. The concept of program manipulation is elucidated by describing its role in both conventional optimization and high level modification of conditional, looping, and procedure structures. An example program fragment written in an Algol-like language is greatly improved by transformations enabled by a user-provided assertion about a data array. A compilation model based on the use of source-to-source program transformations is used to provide a framework for discussing issues of code generation, compilation of high level languages such as APL, and eliminating overhead commonly associated with modular structured programming. Application of the compilation model to several different languages is discussed.

234 citations



Book
01 Jan 1977
TL;DR: A program manipulation system which speeds up Lisp programs by rewriting them, and was applied to a number of programs, which had execution speeds ten to fifty per cent faster than the originals.
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)

2 citations