Automatic Program Improvement: Variable Usage Transformations
- 1 April 1983
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 5 (2) , 236-264
- https://doi.org/10.1145/69624.357209
Abstract
The design objective of the Leeds Transformation System is to transform existing programs, written in a variety of languages, into "tidier" programs. The total system was conceived of as having three phases: syntactic transformations, variable usage transformations, and synthesizing features. Because programmers vary greatly in what they consider to be a more acceptable form, we have aimed to make the system as data driven as possible. (That also enables us to deal with a variety of programming languages.) The paper reviews the first two phases, reports the second in some detail, and illustrates the use of the system on an ALGOL 60 program. Redundant assignments, redundant variables, and loop-invariant statements are discovered by means of a novel approach which represents variable usage within a program as a correspondence matrix. Potential enhancements of the system are also discussed.Keywords
This publication has 9 references indexed in Scilit:
- A data driven system for syntactic transformationsACM SIGPLAN Notices, 1981
- Data Flow Analysis for Procedural LanguagesJournal of the ACM, 1979
- Syntactic source to source transforms and program manipulationCommunications of the ACM, 1979
- A practical interprocedural data flow analysis algorithmCommunications of the ACM, 1978
- Program Improvement by Source-to-Source TransformationJournal of the ACM, 1977
- An Algorithm for Structuring FlowgraphsJournal of the ACM, 1977
- Dave—a validation error detection and documentation system for fortran programsSoftware: Practice and Experience, 1976
- A program data flow analysis procedureCommunications of the ACM, 1976
- Global Data Flow Analysis and Iterative AlgorithmsJournal of the ACM, 1976