|
ABSTRACT
The “referential transparency” principle of applicative language expressions stipulates that a single value exists for all occurrences of an expression in a given context (where a context is a set of bindings of variables to values). In principle, each such value therefore need to be computed only once. However, in applicative language systems supporting recursive programming or tasking notions, the bindings are not all precomputed and explicit. As a result, textual recognition of all multipleoccurrences is precluded, with the unfortunate consequence that such occurrences are recomputed. We elaborate upon the early notion of “memo function” for solving this problem. We suggest syntactic and semantic constructs providing programmer control for avoiding recomputation, which is incorporated into 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
|
|
| |
3
|
BROWN, G. A new concept in programming. In Management and the Computer of the Future, M. Greenberger, Ed., Wiley, New York, 1962.
|
 |
4
|
|
 |
5
|
|
| |
6
|
DIJKSTRA, E. W. Cooperating sequential processes. In Programming Languages, Academic Press, New York, 1968.
|
 |
7
|
|
 |
8
|
Daniel P. Friedman , David S. Wise , Mitchell Wand, Recursive programming through table look-up, Proceedings of the third ACM symposium on Symbolic and algebraic computation, p.85-89, August 10-12, 1976, Yorktown Heights, New York, United States
[doi> 10.1145/800205.806326]
|
| |
9
|
FRIEDMAN, D. P., AND WISE, D. S. CONS should not evaluate its arguments. In Automata, Languages, and Programming, Edinburgh University Press, 1976, 257-284.
|
| |
10
|
FRIEDMAN, D. P., AND WISE, D.S. The impact of applicative programming on multiprocessing. IEEE Trans. Comput. C-27, 4 (Apr. 1978), 289-296.
|
| |
11
|
GRISS, M.L. Efficient expression evaluation in sparse minor expansion, using hashing and deferred evaluation. In Hawaii International Conference on System Sciences, IEEE, New York, 1977.
|
 |
12
|
|
| |
13
|
HILDEN, J. Elimination of recursive calls using a small table of "randomly" selected function values. BIT 16, I (1976), 60-73.
|
| |
14
|
HOARE, C. A.R. Recursive data structures. Int. J. Comput. Inf. Sc~ 4, 2 (1975).
|
| |
15
|
KELLER, R.M. Denotational models for parallel programs with indeterminate operators. In Formal Description of Programming Concepts, E. J. Neuhold, Ed., North-Holland, Amsterdam, 1978, 337-366.
|
| |
16
|
KELLER, R. M., LINDSTROM, C., AND PATIL, S. A loosely-coupled applicative multiprocessing system. In AFIPS Conference (June, 1979), 613-622.
|
| |
17
|
KELLER, R. M., AND LINDSTROM, G. Hierarchical analysis of a distributed evaluator. In Proceedings International Conference on Parallel Processing, (Aug. 1980), IEEE, New York, 299-310.
|
 |
18
|
|
| |
19
|
KELLER, R.M. FEL (Function Equation Language) programmer's guide. AMPS Tech. Memo. 7, Dept. of Computer Science, Univ. of Utah, 1982.
|
| |
20
|
KELLER, R. M., AND LINDSTROM, C. Approaching distributed database implementations through functional programming concepts. In Proceedings 5th International Conference on Distributed Computing Systems. (Denver, Colo., May 1985), IEEE, New York, 192-200.
|
| |
21
|
LANDIN, P. J. The mechanical evaluation of expressions. Computer J. 6, 4 (Jan. 1964), 308-320.
|
 |
22
|
|
| |
23
|
LINDSTROM, G. Efficiency in nondeterministic control through nonforgetful backtracking. Tech. Rep. UUCS-77-114, Univ. of Utah, Oct. 1977.
|
| |
24
|
|
| |
25
|
|
| |
26
|
MICHIE, D. 'Memo' functions and machine learning. Nature 218, (Apr. 1968), 19-22.
|
| |
27
|
|
 |
28
|
|
 |
29
|
|
| |
30
|
WADSWORTH, C.P. Semantics and pragmatics of the lambda-calculus. Ph.D. thesis, Univ. of Oxford, 1971.
|
REVIEW
"John A. Campbell : Reviewer"
In cases where it is relatively expensive in resources to compute functions, it
may be advisable to expand the programmed versions of those functions to contain
a store, or cache, of values already computed. Then, if the same argument is
present
more...
|