Skip to main content

Communicating agents for applicative concurrent programming

  • Conference paper
  • First Online:

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

Abstract

A good program methodology should allow easy proofs of program correctness and should also incorporate methods for improving program efficiency. We try to achieve both aims by proposing, in the framework of the applicative programming style, a language by which one can specify a system of computing agents, which communicate by sending and receiving messages.

The contents of these messages are "facts", or "pieces of truth" about computations. They are formally defined in the paper.

When communications occur, the system of agents achieves better performances in executing programs, and the task of showing correctness of the resulting computations remains relatively simple. We will give some examples for illustrating these points.

The proposed language supports a program methodology for writing concurrent programs in a reliable way. A basis for a theory of communications is introduced, together with a method for using it in specifying behaviours of agents and proving them correct.

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.

References

  1. Burstall, R.M., D.B. MacQueen and D.T. Sannella: "HOPE: an experimental applicative language", Proc. LISP Conference, Stanford University (1980).

    Google Scholar 

  2. Burstall, R.M. and J. Darlington: "A transformation system for developing recursive programs", JACM, Vol. 24, No. 1 (1977), 44–67.

    Google Scholar 

  3. Dennis, J.B.: "First version of a data flow procedure language", LNCS 19 Springer-Verlag (1974).

    Google Scholar 

  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. Hoare, C.A.R.: "Communicating sequential processes", CACM, 21, 8 (1978).

    Google Scholar 

  6. 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 

  7. McCarthy, J. et al: "LISP Programmer's Manual", MIT Press, MIT, Cambridge, Mass. (1962).

    Google Scholar 

  8. Milner, R.: "A calculus for communicating systems", LNCS 92, Springer-Verlag (1980).

    Google Scholar 

  9. Owicki, S.: "Axiomatic proof techniques for parallel programs", Computer Science Department, Cornell University, Ph.D. thesis (1975).

    Google Scholar 

  10. Pettorossi, A.: "A transformational approach for developing parallel programs", CONPAR Conference Nürnberg (1981), LNCS 111, pp. 245–258.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mariangiola Dezani-Ciancaglini Ugo Montanari

Rights and permissions

Reprints and permissions

Copyright information

© 1982 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pettorossi, A., Skowron, A. (1982). Communicating agents for applicative concurrent programming. In: Dezani-Ciancaglini, M., Montanari, U. (eds) International Symposium on Programming. Programming 1982. Lecture Notes in Computer Science, vol 137. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-11494-7_20

Download citation

  • DOI: https://doi.org/10.1007/3-540-11494-7_20

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-11494-9

  • Online ISBN: 978-3-540-39184-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics