An approach to communications and parallelism in applicative languages

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


Applicative languages possess very attractive features with respect to program readability and correctness proofs. Sometimes, however, they do not seem to allow very high levels of efficiency. In this paper we consider how one can embed concepts of parallel evaluation and communications in applicative languages, so that program efficiency may be improved. We also studied a novel theory of communications among concurrent computing agents. In general, such communications are optional in the sense that only program efficiency (not program correctness) is effected, if they do not take place.


Recursive Call Fibonacci Number Program Efficiency Program Correctness Program Readability 
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.


  1. [1]
    Burstall, R.M. and J. Darlington: A Transformation System for Developing Recursive Programs, J.A.C.M. Vol. 24, No. 1 (1977), pp. 44–67.Google Scholar
  2. [2]
    Burstall,R.M., D.B.MacQueen and D.T.Sannella: HOPE: An Experimental Applicative Language, Proc. LISP Conference. Stanford University (1980).Google Scholar
  3. [3]
    Dennis,J.B.: First Version of a Data Flow Procedure Language, L.N.C.S. 19 Springer Verlag (1974).Google Scholar
  4. [4]
    Hewitt, C. and H. Baker, Jr.: Actors and Continuous Functionals, in: Neuhold, E.J. (ed.), Formal Descriptions of Programming Languages, North Holland, Amsterdam (1978).Google Scholar
  5. [5]
    Kahn, G. and D.B. MacQueen: Coroutines and Network of Parallel Processes, in Gilchrist, B. (ed.), Information Processing 1977, North Holland, Amsterdam (1977), pp. 993–998.Google Scholar
  6. [6]
    McCarthy, J. et al.: LISP 1.5 Programmer's Manual, M.I.T. Press, MIT, Cambridge, Mass. (1962).Google Scholar
  7. [7]
    Milner,R.: A Calculus for Communicating Systems, L.N.C.S. n.92 Springer Verlag (1980).Google Scholar
  8. [8]
    Pettorossi,A.: Organizing Parallelism and Communications for Efficient Distributed Computations, Congress AICA Bologna (1980).Google Scholar
  9. [9]
    Pettorossi,A. and R.M.Burstall: Deriving very efficient algorithms for evaluating linear recurrence relations using the program transformation technique (submitted to Acta Informatica).Google Scholar
  10. [10]
    Roussel,P.: Prolog: Manual de reference et d'utilisation, Groupe d'Intelligence Artificielle, Marseille-Luminy (1975).Google Scholar
  11. [11]
    Schwartz,J.: Using Annotations to Make Recursion Equations Behave, D.A.I. Research Report No.43 D.A.I. University of Edinburgh (1977).Google Scholar
  12. [12]
    Ward, S.A. and R.H. Halstead, Jr.: A Syntactic Theory of Message Passing, J.A.C.M. Vol. 27 No. 2 (1980), pp. 365–383.Google Scholar
  13. [13]
    Warren,D.H.D., L.M.Pereira and F.Pereira: PROLOG-The language and its implementation compared with LISP, Proc. Symp. on Artificial Intelligence and Programming Languages SIGPLAN Notices, Vol. 12, No. 8 (1977).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1981

Authors and Affiliations

  • Alberto Pettorossi
    • 1
    • 2
  1. 1.I.A.S.I — C.N.R.RomaItaly
  2. 2.Dept. of Computer ScienceEdinburgh UniversityEdinburghScotland

Personalised recommendations