Skip to main content

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

  • Conference paper
  • First Online:
  • 106 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 148))

Abstract

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7. References

  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. 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. Henderson,P. and J.H. Morris, Jr.: A Lazy Evaluator, Proc. of POPL Conference Sigplan-Sigact Atlanta (1976) pp. 95–103.

    Google Scholar 

  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. Hoare, C.A.R.: Communicating Sequential Processes, Comm. A.C.M. 21, 8 (Aug. 1978) pp. 666–677.

    Google Scholar 

  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. Milne, G. and R. Milner: Concurrent Processes and Their Syntax, J.A.C.M. Vol. 26 pp. 302–321.

    Google Scholar 

  8. Milner,R.: A Calculus for Communicating Systems, LNCS 92 Springer Verlag (1980).

    Google Scholar 

  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. Pettorossi,A.: Transformation of Programs and Use of Tupling Strat e gy, Informatica 77. Congress, Bled (Yugoslavia) (1977).

    Google Scholar 

  11. Pettorossi,A.: Organizing parallelism and communications for efficient distributed computations, AICA Congress Bologna (1980).

    Google Scholar 

  12. Schwarz,J.: Using Annotations to Make Recursive Equations Behave, D.A.I. Research Report No. 43, Edinburgh University (Sept. 1977).

    Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

A. Salwicki

Rights and permissions

Reprints and permissions

Copyright information

© 1983 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pettorossi, A. (1983). Towards a theory of parallelism and communications for increasing efficiency in applicative languages. In: Salwicki, A. (eds) Logics of Programs and Their Applications. Logic of Programs 1980. Lecture Notes in Computer Science, vol 148. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-11981-7_16

Download citation

  • DOI: https://doi.org/10.1007/3-540-11981-7_16

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-11981-4

  • Online ISBN: 978-3-540-39445-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics