Hybrid parallel programming and implementation of synchronised communication

  • He Jifeng
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 711)


An occam program is usually translated into a machine program executed in parallel with a set of system processes such as communication protocol and scheduler, where the target program appears in a form which cannot be adequately modelled in a purely communication-based parallel language since concurrent components share variables. This paper presents a mathematical theory for a hybrid language equipped with a parallel construct, whose sub-processes can communicate with each other via both channels and shared variables. We examine the algebraic laws of the language, and show how they can help in the implementation of concurrency and synchronised communication of occam.


Parallel Program Shared Variable Parallel Component Internal Channel Machine Program 
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]
    M. Abadi and L. Lamport. Composing Specifications LNCS 430, 1–42, (1990).Google Scholar
  2. [2]
    R.S. Bird. Lectures on Correctness Functional Programming. Technical Monograph PRG-69, Oxford University Computing Laboratory, (1989).Google Scholar
  3. [3]
    S.D. Brookes, A.W. Roscoe. An Improved Failure Model For Communicating Processes. LNCS 197, 281–305, (1985).Google Scholar
  4. [4]
    M. Gordan. Proving a computer correct. Technical Report 42, University of Cambridge Computing Laboratory, (1983).Google Scholar
  5. [5]
    I. Gaessarian. Algebraic Semantics. LNCS 99, (1981).Google Scholar
  6. [6]
    He Jifeng. Introduction of Hybrid Parallel Programming. ProCoS Technical Report, Oxford University Computing Laboratory, (1992).Google Scholar
  7. [7]
    C.A.R. Hoare. The Varieties of Programming Languages. TAPSOFT Proceedings, Springer-Verlag, LNCS 351, 1–18, (1989).Google Scholar
  8. [8]
    INMOS Ltd. The occam programming manual. Prentice-Hall, (1984).Google Scholar
  9. [9]
    A.J. Martin. Compiling communicating process into delay-insensitive VLSI circuits. Distributed Computing 1 (4), (1986).Google Scholar
  10. [10]
    D. May. OCCAM and Transputer. In Developments in Concurrency and Communication, 65–87, (1991).Google Scholar
  11. [11]
    D. May. Compiling OCCAM into Silicon. In Developments in Concurrency and Communication, 88–107, (1991).Google Scholar
  12. [12]
    D. May and R. Shepherd. Communicating Process Computers. Communicating Process Architecture, 31–44, Prentice-Hall, (1988).Google Scholar
  13. [13]
    G. Nelson and M. Manasse. The Proof of a Second Step of a Factored Compiler. Lecture Notes for International Summer School on Programming and Mathematical Method, Marktoberdorf, Germany, (1990).Google Scholar
  14. [14]
    S. Owicki. Axiomatic Proof Techniques for Parallel Programs. PhD thesis, Department of Computer Science, Cornell University, (1975).Google Scholar
  15. [15]
    A. Pnueli. The temporal semantics of concurrent programs. LNCS 70, 1–20, (1979).Google Scholar
  16. [16]
    L. Pomello. Refinement of Concurrent System Based on Local State Transformation. LNCS 430, 641–669, (1990).Google Scholar
  17. [17]
    A.W. Roscoe and C.A.R. Hoare. The Laws of occam Programming. Theoretical Computer Science, (1988).Google Scholar
  18. [18]
    K. Stolen. Development of Parallel Programs on Shared-Data Structure. Thesis DPhil. Manchester University, (1990).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • He Jifeng
    • 1
  1. 1.Programming Research GroupOxford University Computing LaboratoryOxfordEngland

Personalised recommendations