Advertisement

Programming with broadcasts

  • K. V. S. Prasad
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 715)

Abstract

[Pra91, Pra92] develop CBS, a CCS-like calculus [Mil89] where processes communicate by broadcasting values along a single channel. These values are hidden or restricted by translation to noise. This paper types CBS and restricts it to processes with a unique response to each input. Nondeterminism arises only if two processes in parallel both wish to transmit. These restrictions do not reduce the programming power of CBS. But strong and weak bisimulation can now be defined exactly as in CCS, yet capture observationally meaningful relations. Weak bisimulation is a congruence.

This paper also shows how to program in CBS in a (lazy) ML framework. A simple CBS simulator is given, and a parallel implementation discussed. The simulator represents data evaluation, recursion and conditionals directly in Lazy ML. It implements an extended CBS with evaluation as well as communication transitions.

Key words and phrases

Broadcast communication parallel computation functional programming process calculi bisimulation observational equivalence 

CR classification

F3. 2 Semantics of Programming Languages—operational semantics algebraic approaches to semantics 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [AJ93]
    Lennart Augustsson and Thomas Johnsson. Lazy ML user's manual. Technical report, Department of Computer Science, Chalmers University of Technology, 1993.Google Scholar
  2. [Ber93]
    Bernard Berthomieu. Programming with behaviours in an ML framework; the syntax and semantics of LCS. Technical report, LAAS-CNRS, Toulouse, 1993.Google Scholar
  3. [BM91]
    J.-P. Banâtre and D. Le Metayer, editors. Research Directions in High-Level Parallel Programming Languages. Springer Verlag LNCS 574, 1991.Google Scholar
  4. [BMT92]
    Dave Berry, Robin Milner, and David Turner. A semantics for ML concurrency primitives. In Symposium on Principles of Programming Languages. ACM, 1992.Google Scholar
  5. [Bur88]
    F. W. Burton. Nondeterminism with referential transparency in functional languages. The Computer Journal, 31 (3):243–247, 1988.CrossRefGoogle Scholar
  6. [BW88]
    Richard Bird and Philip Wadler. Introduction to Functional Programming. Prentice-Hall, 1988.Google Scholar
  7. [CH88]
    Rance Cleaveland and Matthew Hennessy. Priorities in process algebras. In Symposium on Logic in Computer Science. IEEE, 1988.Google Scholar
  8. [CW91]
    Juanito Camilleri and Glynn Winskel. CCS with priority choice. In Symposium on Logic in Computer Science. IEEE, 1991.Google Scholar
  9. [DK86]
    Rina Dechter and Leonard Kleinrock. Broadcast communications and distributed algorithms. IEEE Trans, on Computers, 35(3):418, Mar 1986.Google Scholar
  10. [GMP89]
    Alessandro Giacalone, Prateek Mishra, and Sanjiva Prasad. Facile: A symmetric integration of concurrent and functional programming. International Journal of Parallel Programming, 18(2), 1989.Google Scholar
  11. [Hol83]
    Sören Holmström. PFL: A functional language for parallel programming. Technical Report 7, Dept. of Computer Sciences, Chalmers Univ. of Tech., 1983.Google Scholar
  12. [HT92]
    Tzung-Pei Hong and Shian-Shyong Tseng. Parallel perceptron learning on a singlechannel broadcast communication model. Parallel Computing, 18:133–148, 1992.CrossRefGoogle Scholar
  13. [Jon93]
    Simon Jones. Translating CBS to LML. Technical report, Department of Computer Science, Chalmers University of Technology, 1993.Google Scholar
  14. [Läu92]
    Konstantin Läufer. Polymorphic Type Inference and Abstract Data Types. PhD thesis, New York University, 1992.Google Scholar
  15. [LT87]
    Nancy Lynch and Mark Tuttle. Hierarchical correctness proofs for distributed algorithms. Technical Report MIT/LCS/TR-387, Laboratory for Computer Science, Massachusetts Institute of Technology, 1987.Google Scholar
  16. [Mil89]
    Robin Milner. Communication and Concurrency. Prentice Hall, 1989.Google Scholar
  17. [Pet93]
    Jenny Petersson. Tools for a calculus of broadcasting systems. Licentiate thesis, Department of Computer Science, Chalmers University of Technology, 1993. In preparation.Google Scholar
  18. [Pra87]
    K. V. S. Prasad. Combinators and Bisimulation Proofs for Restartable Systems. PhD thesis, University of Edinburgh, December 1987.Google Scholar
  19. [Pra89]
    K. V. S. Prasad. On the non-derivability of operators in CCS. Technical Report 55, Dept. of Computer Sciences, Chalmers Univ. of Tech., Dec 1989.Google Scholar
  20. [Pra91]
    K. V. S. Prasad. A calculus of broadcasting systems. In TAPSOFT'91 Volume 1: CAAP, April 1991. Springer Verlag LNCS 493.Google Scholar
  21. [Pra92]
    K. V. S. Prasad. A calculus of value broadcasts. Technical report, Department of Computer Science, Chalmers University of Technology, 1992. To be presented at PARLE'93.Google Scholar
  22. [Pra93]
    K. V. S. Prasad. Broadcasting with priority. Technical report, Department of Computer Science, Chalmers University of Technology, 1993. Extended abstract, submitted to CONCUR'93.Google Scholar
  23. [Rep91]
    J. H. Reppy. A higher order concurrent language. SIGPLAN Notices, 26(6):294–305, 1991. ACM SIGPLAN'91 Conference on Programming Language Design and Implementation.Google Scholar
  24. [YLC90]
    Chang-Biau Yang, R. C. T. Lee, and Wen-Tsuen Chen. Parallel graph algorithms based upon broadcast communications. IEEE Trans. on Computers, 39(12):1468, Dec 1990.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • K. V. S. Prasad
    • 1
  1. 1.Department of Computer SciencesChalmers University of Technology96 GothenburgSweden

Personalised recommendations