|
ABSTRACT
Program development often proceeds by transforming simple, clear programs into complex, involuted, but more efficient ones. This paper examines ways this process can be rendered more systematic. We show how analysis of program performance, partial evaluation of functions, and abstraction of recursive function definitions from recurring subgoals can be combined to yield many global transformations in a methodical fashion. Examples are drawn from compiler optimization, list processing, very high level languages, and APL execution.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Abrams, P. An APL Machine. SLAC-14, Stanford Linear Accelerator Center, Feb. 1970.
|
| |
2
|
ACM Sigplan Symp. on Very High Level Languages. Sigplan Notices, 9, 4, April 1974.
|
| |
3
|
Allen, F.E. and Cocke, J. A catalogue of optimizing transformations. In R. Rustin (Ed.) Design and Optimization of Compilers, Prentice-Hall, 1972, 1-30.
|
| |
4
|
Battarel, G. et al. Optimized interpretation of APL statements. In P. Gjerlov, H.J. Helms, and J. Nielsen (Eds.) APL Congress 73, North-Holland, 1973, 49-57.
|
| |
5
|
Beckman, L. et al. A partial evaluator and its use as a programming tool. Dept. of Computer Sciences, Uppsala University, Sweden, Nov. 1974.
|
 |
6
|
|
 |
7
|
|
| |
8
|
|
| |
9
|
Cheatham, T.E. and Wegbreit, B. A laboratory for the study of automating programming. AFIPS Conf. Proc., Vol. 70 (Spring 1972), 11-21.
|
 |
10
|
|
| |
11
|
Dijkstra, E.W. Notes on structured programming. In O.J. Dahl, E.W. Dijkstra, and C.A.R. Hoare (Eds.) Structured Programming, Academic Press, 1972, 1-82.
|
 |
12
|
|
 |
13
|
|
| |
14
|
Henderson, P. and Morris, J.H. A lazy evaluator. CSL, Xerox Palo Alto Research Center, August 1975.
|
| |
15
|
Holt, A.W. et al. Final report for the information system theory project. Applied Data Research, Inc., New York, Feb. 1968.
|
| |
16
|
|
| |
17
|
Lombardi, L.A. and Raphael, B. Lisp as the language for an incremental computer. In E.C. Berkeley and D.G. Bobrow (Eds.) The Programming Language LISP: Its Operation and Applications, MIT Press, Cambridge, 1964, 204-219.
|
| |
18
|
Manna, Z. and Waldinger, R. Knowledge and reasoning in program synthesis. Stanford Research Inst., Menlo Park, CA, Nov. 1974.
|
| |
19
|
Pakin, S. APL/360 Reference Manual. Science Research Associates, Inc. 1968.
|
| |
20
|
Sanderwall, E.A. Programming tool for management of predicate-calculus-oriented data bases. Proc. Second Int. Joint Conf. on Artificial Intelligence, British Computer Society, 1971.
|
 |
21
|
|
| |
22
|
Vuillemin, J. Correct and optimal implementations of recursion in a simple programming language. JCSS, 9, 3 (Dec. 1974), 332-353.
|
 |
23
|
|
CITED BY 8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Robert Balzer , Neil Goldman , David Wile, On the Transformational Implementation approach to programming, Proceedings of the 2nd international conference on Software engineering, p.337-344, October 13-15, 1976, San Francisco, California, United States
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
I.
Computing Methodologies
I.2
ARTIFICIAL INTELLIGENCE
I.2.2
Automatic Programming
Subjects:
Program transformation
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Optimization
F.
Theory of Computation
F.4
MATHEMATICAL LOGIC AND FORMAL LANGUAGES
F.4.1
Mathematical Logic
Subjects:
Mechanical theorem proving
General Terms:
Algorithms,
Languages,
Performance,
Theory
Keywords:
APL,
Analysis of programs,
Compiler optimization,
Evaluation in context,
Execution analysis,
Generalization,
Lisp,
List processing,
Optimizing transformations,
Partial evaluation,
Program analysiss,
Program transformation,
Simplification,
Very high level language
|