ACM Home Page
Please provide us with feedback. Feedback
Applicative caching: Programmer control of object sharing and lifetime in. distributed implementations of applicative languages
Full text PdfPdf (872 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: 131 - 140  
Year of Publication: 1981
ISBN:0-89791-060-5
Authors
Robert M. Keller  Department of Computer Science, University of Utah, Salt Lake City, Utah
M. Ronan Sleep  Computing Studies Sector, University of East Anglia, Norwich NR4 7TJ England
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): 1,   Downloads (12 Months): 8,   Citation Count: 4
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.806772
What is a DOI?

ABSTRACT

The “referential transparency” of applicative language expressions demands that all occurrences of an expression in a given context yield the same value. In principle, that value therefore needs to be computed only once. However, in recursive programming, a context usually unfolds dynamically, precluding textual recognition of multiple occurrences, so that such occurrences are recomputed. To remedy the lack, in applicative languages, of an ability to store and retrieve a computed value under programmer control, “caching functionals” are proposed which allow the programmer to selectively avoid recomputation without overt use of assignment. The uses and implementation of such mechanisms are discussed, including reasons and techniques for purging the underlying cache. Our approach is an extension of the early notion of “memo function”, enabling improved space utilization and a “building-block” approach.


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
W.H. Burge. Recursive programming techniques. Addison-Wesley, 1975.
 
3
E.W. Dijkstra. Cooperating sequential processes. Academic Press, 1968,
 
4
R. Doany. Implementation of a network database using a function graph language. Master's thesis, University of Utah, Dept. of Computer Science, June, 1981.
5
 
6
D.P. Friedman and D.S. Wise. CONS should not evaluate its arguments. Edinburgh University Press, 1976, pages 257-284.
 
7
D.P. Friedman and D.S. Wise. The impact of applicative programming on multiprocessing. IEEE Trans. on Computers C-27 (4):289-296, April, 1978.
 
8
M.L. Griss. Efficient expression evaluation in sparse minor expansion, using hashing and deferred evaluation. In Hawaii International Conference on System Sciences. IEEE, 1977.
9
 
10
C.A.R. Hoare. Recursive data structures. International Journal of Computer and Information Sciences 4(2), 1975.
 
11
R.M. Keller, G. Lindstrom, and S. Patil. A loosely-coupled applicative multi-processing system. In AFIPS Conference. June, 1979.
 
12
R.M. Keller, B. Jayaraman, D. Rose, G. Lindstrom. FGL (Function Graph Language) Programmers' Guide. Technical Report AMPS Technical Memorandum No. 1, University of Utah, Computer Science Department, 1980.
13
 
14
R.M. Keller and W-C. J. Yen. A graphical approach to software development using function graphs. In Proc. Compcon 81, pages 156-161. IEEE, 1981.
 
15
P.J. Landin. The mechanical evaluation of expressions. Computer J. 6(4):308-320, January, 1964.
 
16
Gary Lindstrom. Efficiency in nondeterministic control through non-forgetful backtracking. Technical Report UUCS-77-114, University of Utah, October, 1977.
 
17
D. Michie. 'Memo' functions and machine learning. Nature 218:19-22, April, 1968.
18
 
19
C.P. Wadsworth. Semantics and pragmatics of the lambda-calculus. PhD thesis, University of Oxford, 1971.


Collaborative Colleagues:
Robert M. Keller: colleagues
M. Ronan Sleep: colleagues