Towards a theory of parallelism and communications for increasing efficiency in applicative languages

  • Alberto Pettorossi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 148)


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.


Recursive Call Program Transformation Binomial Coefficient Program Efficiency Line Versus 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7. References

  1. [1]
    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
  2. [2]
    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
  3. [3]
    Henderson,P. and J.H. Morris, Jr.: A Lazy Evaluator, Proc. of POPL Conference Sigplan-Sigact Atlanta (1976) pp. 95–103.Google Scholar
  4. [4]
    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
  5. [5]
    Hoare, C.A.R.: Communicating Sequential Processes, Comm. A.C.M. 21, 8 (Aug. 1978) pp. 666–677.Google Scholar
  6. [6]
    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
  7. [7]
    Milne, G. and R. Milner: Concurrent Processes and Their Syntax, J.A.C.M. Vol. 26 pp. 302–321.Google Scholar
  8. [8]
    Milner,R.: A Calculus for Communicating Systems, LNCS 92 Springer Verlag (1980).Google Scholar
  9. [9]
    Pettorossi,A. and R. Burstall: Deriving Very Efficient Algorithms For Evaluating Linear Recurrence Relations Using Program Transformation Technique, (submitted for publication) (1980).Google Scholar
  10. [10]
    Pettorossi,A.: Transformation of Programs and Use of Tupling Strat e gy, Informatica 77. Congress, Bled (Yugoslavia) (1977).Google Scholar
  11. [11]
    Pettorossi,A.: Organizing parallelism and communications for efficient distributed computations, AICA Congress Bologna (1980).Google Scholar
  12. [12]
    Schwarz,J.: Using Annotations to Make Recursive Equations Behave, D.A.I. Research Report No. 43, Edinburgh University (Sept. 1977).Google Scholar
  13. [13]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1983

Authors and Affiliations

  • Alberto Pettorossi
    • 1
    • 2
  1. 1.IASI - CNRRomaItaly
  2. 2.Dept. of Computer ScienceUniversity of EdinburghEdinburghScotland

Personalised recommendations