ACM Home Page
Please provide us with feedback. Feedback
Applicative style programming, program transformation, and list operators
Full text PdfPdf (698 KB)
Source Functional Programming Languages and Computer Architecture archive
Proceedings of the 1981 conference on Functional programming languages and computer architecture table of contents
Portsmouth, New Hampshire, United States
Pages: 25 - 32  
Year of Publication: 1981
ISBN:0-89791-060-5
Author
Philip Wadler  Carnegie-Mellon University
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
MIT : Massachusetts Institute of Technology
SIGARCH: ACM Special Interest Group on Computer Architecture
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 30,   Citation Count: 13
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/800223.806759
What is a DOI?

ABSTRACT

An important feature of the applicative style is the use of operators that package common patterns of computation. For example, the list operator map applies a function to every element of a list. Practical use of this style has been hampered by the fact that it can be very inefficient to execute. One remedy for this situation is to use source-to-source program transformation to convert applicative style programs to more efficient equivalents. This paper examines how list operators can be used to guide the transformation process. It describes a small set of list operators that possess a “complete” set of transformation rules, allowing transformations to be performed very efficiently. Whereas most previous transformation methods resemble proofs, this transformation method resembles algebraic manipulation.


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 Technical Report 114, Stanford Univ., Feb 1970.
2
 
3
Burge, W. H. Recursive Programming Techniques. Addison-Wesley, Reading, Mass., 1975.
 
4
Burge, W. H. An optimizing technique for high level programming languages. IBM Watson Research Center, RC 5834 (#25271), Feb 1976.
 
5
Burstall, R. M., McQueen, D. B., and Sanella, D. T. Hope: An experimental applicative language. Univ. of Edinburgh, Dept. of Computer Science, 1980.
6
7
 
8
Darlington, J., and Burstall, R. M. A system which automatically improves programs. Acta Informatica 6, 1 (1976).
9
 
10
Feather, M. S. A system for developing programs by transformation. Ph.D. Thesis, Univ. of Edinburgh, 1979.
 
11
Friedman, D. P., and Wise, D. S. Cons should not evaluate its arguments. In Automata, Languages, and Programming, ed. Michaelson and Milner, Edinburgh Univ. Press, 1976, pp. 257-284.
12
13
 
14
Huet, G., and Lang, B. Proving and applying program transformations expressed with second-order patterns. Acta Informatica 11 (1978), pp. 31-55.
15
16
17
18
 
19
Manna, Z., and Waldinger, R. Knowledge and reasoning in program synthesis. Artificial Intelligence 6 (1975), p. 175.
 
20
Manna, Z., and Waldinger, R. Synthesis: Dreams &equil; > Programs. IEEE Trans. Software Engineering SE-5, 4 (July 1979).
 
21
Miller, T. C. Tentative compilation: a design for an APL compiler. Univ. of California, San Diego, Technical Report 78-CS-013, May 1978.
22
 
23
24
25
 
26
Sharir, M. Some observations concerning formal differentiation of set-theoretic expressions. New York Univ., Dept. of Computer Science, Courant Inst. Mathematical Sciences, Tech. Rep. 16, Oct. 1979.
27
 
28
 
29
Wile, D. S. Generator expressions. Internal memo, USC-ISI, 1979.

CITED BY  13