A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program Improvement by Source-to-Source Transformation
Journal of the ACM (JACM)
Structured Programming with go to Statements
ACM Computing Surveys (CSUR)
Improving and refining programs by program manipulation
ACM '76 Proceedings of the 1976 annual conference
On the Transformational Implementation approach to programming
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Incremental data-flow analysis algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Language for Specifying Program Transformations
IEEE Transactions on Software Engineering
Program Transformation Systems
ACM Computing Surveys (CSUR)
Grammar-Based Definition of Metaprogramming Systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Incremental data flow analysis
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The optimization of user programs for an Algebraic Manipulation System
SYMSAC '81 Proceedings of the fourth ACM symposium on Symbolic and algebraic computation
Hi-index | 0.00 |
Systems for program transformation have been suggested by many authors [Knuth, Wegbreit, Loveman, Balzer, Standish2, Burstall & Darlington]. Several of these authors note that such transformation systems could be used to transform lucid, high-level, but possibly inefficient program descriptions into efficient but possibly less legible underlying concrete realizations. One problem, mentioned by Loveman [Loveman] is that of chaining together many low-level simple transformations to achieve high-level goals. For example, we may wish to chain together low-level transformations such as constant propagation, performing arithmetic at transformation time, dead variable elimination, empty statement removal and the like, to achieve the high-level goal of program simplification. This paper shows one technique for organizing sequences of low-level program transformations within an interactive programming medium to achieve nearly automatic global program improvements with low search times and minimal human intervention and guidance.