Towards a theory of parallelism and communications for increasing efficiency in applicative languages
A new methodology for writing efficient programs is proposed through various examples. The basic ideas are:i) the use of the appli cative stile of programming, so that correctness of programs can easily be proved, and ii) the improvement of program efficiency by the evaluation of functions applications using concurrent computing agents.
For increasing efficiency, communications among those agents are necessary, so that redundant evaluations of common subexpressions can be avoided.
In this paper we also introduce some preliminary ideas for a theory of such communications. We call them "helpful communications". They include "compulsory" communications, which effect program correctness, and "optional" communications, which do not effect program correctness, but only program efficiency.
KeywordsRecursive Call Program Transformation Binomial Coefficient Program Efficiency Line Versus
Unable to display preview. Download preview PDF.
- Burstall, R.M. and J. Darlington: A Transformation System for Rove l oping Recursive Programs, J.A.C.M. Vol. 24, No. 1, Jan 77 pp. 44–67.Google Scholar
- Burstall,R.M., D.B. MacQueen and D.T. Sannella: HOPE: An Experime n tal Applicative Language, CSR-62-80 Computer Science Edinburgh University (1980).Google Scholar
- Henderson,P. and J.H. Morris, Jr.: A Lazy Evaluator, Proc. of POPL Conference Sigplan-Sigact Atlanta (1976) pp. 95–103.Google Scholar
- Hewitt, C. and H. Baker, Jr.: Actors and Continuous Functionals, Neuhold, E.J. (Ed.), Formal Descriptions of Programming Languages, Noth Holland, Amsterdam (1978).Google Scholar
- Hoare, C.A.R.: Communicating Sequential Processes, Comm. A.C.M. 21, 8 (Aug. 1978) pp. 666–677.Google Scholar
- Kahn, G. and D.B. MacQueen: Coroutines and Networks of Parallel Processes, in: Gilchrist, B. (Ed.), Information Processing 77, North Holland, Amsterdam (1977) pp. 993–998.Google Scholar
- Milne, G. and R. Milner: Concurrent Processes and Their Syntax, J.A.C.M. Vol. 26 pp. 302–321.Google Scholar
- Milner,R.: A Calculus for Communicating Systems, LNCS 92 Springer Verlag (1980).Google Scholar
- Pettorossi,A. and R. Burstall: Deriving Very Efficient Algorithms For Evaluating Linear Recurrence Relations Using Program Transformation Technique, (submitted for publication) (1980).Google Scholar
- Pettorossi,A.: Transformation of Programs and Use of Tupling Strat e gy, Informatica 77. Congress, Bled (Yugoslavia) (1977).Google Scholar
- Pettorossi,A.: Organizing parallelism and communications for efficient distributed computations, AICA Congress Bologna (1980).Google Scholar
- Schwarz,J.: Using Annotations to Make Recursive Equations Behave, D.A.I. Research Report No. 43, Edinburgh University (Sept. 1977).Google Scholar
- Strachey,C. and C.P. Wadsworth: Continuations: A Mathematical Semantics for Handling Full Jumps, Tech. Monograph PRG-11, Oxford University Computing Laboratory, Oxford (Jan 1974).Google Scholar