Controlling reduction partial order in functional parallel programs
In a functional parallel programming language a programmer may wish to control the reduction partial order to increase parallelism, reduce storage requirements, or reduce the total amount of work performed.
We show by a series of example that the reduction partial order can be easily controlled by using a combination of call-by-value, call-by-name, and call-by-speculation (an eager form of call-by-need).
Unable to display preview. Download preview PDF.
- 1.Arvind, Sharing of Computations in Functional Language Implementations, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1984.Google Scholar
- 2.F. W. Burton and M. R. Sleep, "Executing functional programs on a virtual tree machine", Proc. 1981 Conf. Functional Programming Languages and Computer Architecture, Portsmouth, New Hampshire, Oct. 1981, 187–194.Google Scholar
- 4.F. W. Burton and M. M. Huntbach, "Virtual tree machines", IEEE Trans. on Computers C-33, 3 (Mar. 1984), 278–280.Google Scholar
- 5.F. W. Burton, "Speculative computation, parallelism, and functional programming", IEEE Trans. on Computers C-34, 12 (Dec. 1985), 1190–1193.Google Scholar
- 6.F. W. Burton, "Storage management in virtual tree machines", IEEE Trans. on Computers, To appear.Google Scholar
- 7.F. W. Burton, "Functional programming for concurrent and distributed computing", Comp. J., To appear.Google Scholar
- 8.F. W. Burton, "Nondeterminism with referential transparency in functional programming languages", To appear.Google Scholar
- 9.F. W. Burton, D. Maurer, H. Oberhauser and R. Wilhelm, "A space efficient optimization of call-by-need", IEEE Trans. on Software Eng., To appear.Google Scholar
- 10.D. P. Friedman and D. S. Wise, "Cons should not evaluate its arguments", Third Int. Coll. Automata Languages and Programming, Edinburgh, Scotland, 1976, 257–284.Google Scholar
- 11.P. Henderson and J. M. Morris, "A lazy evaluator", Conf. Rec 3th ACM Symp. on Prin. of Prog. Lang., Atlanta, Ga., Jan. 1976, 95–103.Google Scholar
- 12.R. J. M. Hughes, "Super Combinators: A new implementation method for applicative programs", Proc. 1982 ACM Symposium on LISP and Functional Programming, Pittsburgh, Penn., Aug. 1982, 1–10.Google Scholar
- 13.R. J. M. Hughes, "Why functional programming matters", Programming Methodology Group Memo PMG-40, Dept. of Computer Science, Chambers University of Technology and University of Goteborg, Goteborg, Sweden, 1984.Google Scholar
- 14.J. McCarthy, "A basic mathematical theory of computation", in Computer Programming and Formal Systems, P. Braffort and D. Hirschberg (editor), North Holland, Amsterdam, 1963, 33–70.Google Scholar
- 15.D. A. Turner, "A new implementation technique for applicative languages", Software-Practice & Experience 9 (1979), 31–49.Google Scholar
- 16.D. A. Turner, "Functional programs as executable specifications", in Mathematical logic and programming languages, C. A. R. Hoare and J. Shepherdson (editor), Prentice Hall, Englewood Cliffs, NJ, 1985, 29–54.Google Scholar
- 17.D. A. Turner, "Miranda: A non-strict functional language with polymorphic types", in Functional Programming Languages and Computer Architecture, vol. 201, J. Jouannaud (editor), Springer-Verlag, Berlin-Heidelberg-New York-Tokyo, 1985, 1–16.Google Scholar
- 18.P. Wadler, "Applicative style programming, program transformation, and list operators", Proc. 1981 Conf. Functional Programming Languages and Computer Architecture, Portsmouth, New Hampshire, Oct. 1981.Google Scholar
- 19.C. P. Wadsworth, Semantics and Progmatics of the Lambda-Calculus, Oxford University, 1971.Google Scholar