|
ABSTRACT
The perceived inefficiency in execution functional programming languages has been an obstacle to their widespread acceptance. Consequently, algorithms are often coded for efficient execution at the expense of clarity. This compromises the functional style, which is the prime advantage of such languages. We argue that high-level program transformations can relieve the programmer from concern for efficiency in many instances. We present several transformations applicable to FP program schemes, and show how these may be proven using fixpoint induction. We also show how specific subalgebras may be exploited to develop more specialised transformations, and suggest that this may be the most fruitful direction for further efforts to take. Comparison with earlier work on transformations reveals that the use of variables in LISP-like languages has often interfered with the identification of superficially dissimilar programs as instances of a common scheme. A variable-free notation such as FP has proven easier to work with.
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
|
|
 |
2
|
|
 |
3
|
|
 |
4
|
|
| |
5
|
Darlington, J. and Burstall, R.M., "A System which Automatically Improves Programs", Acta Informatica 6 (1976), 41-60
|
| |
6
|
Dennis, J.B., "Data Flow Supercomputers", Computer 13:11 (Nov. 1980), 48-56
|
| |
7
|
Friedman, D.P. and Wise, D.S., "CONS Should Not Evaluate its Arguments", in Automata, Languages and Programming, S. Michaelson and R. Milner, Eds., Edinburgh Univ. Press, Edinburgh, 1976, 257-284
|
| |
8
|
Grismer, T.M., "Solving Common Programming Problems With an Applicative Language", Tech. Rept. #109, Indiana Univ. Computer Sci. Dept., 1981
|
 |
9
|
|
| |
10
|
Keller, R.M., Lindstrom, G. and Patil, S., "A Loosely-coupled, Applicative Multi-processing System", Proc. NCC 48 (1979), AFIPS Press, 861-870
|
| |
11
|
Mago, G., "A Network of Microprocessors to Execute Reduction Languages" (two parts), Int. J. Computer and Info. Sci. 8:5,6 (1979)
|
| |
12
|
|
 |
13
|
|
| |
14
|
Michie, D., "Memo Functions: A Language Feature with Rote Learning Properties", DMIP Memo MIP-R-29, Edinburgh, 1967
|
|