Embedding as a tool for language comparison: On the CSP hierarchy

  • Frank S. de Boer
  • Catuscia Palamidessi
Selected Presentations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 527)


The concept of embedding has recently been introduced as a formal tool to study the relative expressive power of (concurrent) programming languages. We use the notion of “modular embedding” to compare various dialects of CSP and ACSP (Asynchronous CSP), which differ on the kind of communication primitives allowed in the guards: all, only input, or none. Concerning the synchronous paradigm, we show that CSP is strictly more powerful than \(CSP_\mathcal{I}\)(the version of CSP with no output guards), and that \(CSP_\mathcal{I}\)is strictly more powerful than \(CSP_{\not 0}\)(the version of CSP with no communication primitives in the guards). The first separation result does not hold in the asynchronous variants of these languages: since asynchronous output guards cannot be influenced by the environment (they can always proceed), it is irrelevant to have or not to have them in the language. Therefore, ACSP and \(ACSP_\mathcal{I}\)are equivalent. Still, they are strictly more expressive than \(ACSP_{\not 0}\). Finally, we come to compare the synchronous and asynchronous paradigms. The asynchronous communication can be modeled synchronously by means of “buffer” processes. On the other hand, synchronous communication (when not fully used to control nondeterminism) can be modeled asynchronously by means of acknowledgement messages. As a consequence, \(CSP_\mathcal{I}\), ACSP, and \(ACSP_\mathcal{I}\)are equivalent. An interesting corollary of these results is that ACSP is strictly less powerful than CSP.

C.R. Categories

D.1.3 D.3.1 F.1.2 F.3.2 F.4.1 

Key Words and Phrases

concurrent logic languages compositional semantics embedding 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    J.C.M. Baeten, J.A. Bergstra, and J.-W. Klop. On the consistency of Koomen's fair abstraction rule. Theoretical Computer Science, 51(1,2):129–176, 1987.Google Scholar
  2. [2]
    J.A. Bergstra and J.-W. Klop. Process algebra: specification and verification in bisimulation semantics. In Mathematics and Computer Science II, CWI Monographs, pages 61–94. North-Holland, 1986.Google Scholar
  3. [3]
    L. Bougé. On the existence of symmetric algorithms to find leaders in networks of communicating sequential processes. Acta Informatica, 25:179–201, 1988.Google Scholar
  4. [4]
    S.D. Brookes, C.A.R. Hoare, and W. Roscoe. A theory of communicating sequential processes. Journal of ACM, 31:499–560, 1984.Google Scholar
  5. [5]
    A.K. Chandra and Z. Manna. The power of programming features. J. Computer Languages, 1:219–232, 1975.Google Scholar
  6. [6]
    F.S. de Boer, J.N. Kok, C. Palamidessi, and J.J.M.M. Rutten. The failure of failures: Towards a paradigm for asynchronous communication. Technical Report RUU-CS-90-40, Department of Computer Science, University of Utrecht, 1990. A short version of this paper will appear in Proc. of CONCUR 91.Google Scholar
  7. [7]
    F.S. de Boer and C. Palamidessi. Concurrent logic languages: Asynchronism and language comparison. In Proc. of the North American Conference on Logic Programming, Series in Logic Programming, pages 175–194. The MIT Press, 1990. Full version available as technical report TR 6/90, Dipartimento di Informatica, Università di Pisa.Google Scholar
  8. [8]
    F.S. de Boer and C. Palamidessi. Embedding as a tool for language comparison. Technical Report CS-R9102, Centre for Mathematics and Computer Science (CWI), Amsterdam, 1991.Google Scholar
  9. [9]
    R. de Simone. Higher-level synchronising devices in MEIJE-SCCS. Theoretical Computer Science, 37(3):245–267, 1985.Google Scholar
  10. [10]
    M. Felleisen. On the expressive power of programming languages. In N. Jones, editor, Proc. of the European Symposium on Programming, volume 432 of Lecture Notes in Computer Science, pages 134–151. Springer-Verlag, 1990. Full version to appear in Science of Computer Programming.Google Scholar
  11. [11]
    C.A.R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666–677, 1978.Google Scholar
  12. [12]
    He Jifeng, M.B. Josephs, and C.A.R. Hoare. A theory of synchrony and asynchrony. In Proc. of IFIP Working Conference on Programming Concepts and Methods, pages 459–478, 1990.Google Scholar
  13. [13]
    M.B. Josephs, C.A.R. Hoare, and He Jifeng. A theory of asynchronous processes. Technical report, Oxford University Computing Laboratories, 1990.Google Scholar
  14. [14]
    P.J. Landin. The next 700 programming languages. Communications of the ACM, 3(9):157–166, 1966.Google Scholar
  15. [15]
    J. Parrow. The expressive power of parallelism. In Proc. of PARLE 89, volume 366 of Lecture Notes in Computer Science, pages 389–405. Springer-Verlag, 1989. Revised and extended version in SICS Research Report R90016.Google Scholar
  16. [16]
    M.S. Paterson and C.E. Hewitt. Comparative schematology. In Conf. Rec. ACM Conference on Concurrent Systems and Parallel Computation, pages 119–127, 1970.Google Scholar
  17. [17]
    J.C. Reynolds. GEDANKEN — a symple typeless language based on the principle of completeness and the reference concept. Communications of the ACM, 5(13):308–319, 1970.Google Scholar
  18. [18]
    J.C. Reynolds. The essence of Algol. In J. de Bakker and van Vliet, editors, Algorithmic Languages, pages 345–372. North-Holland, Amsterdam, 1981.Google Scholar
  19. [19]
    V.A. Saraswat and M. Rinard. Concurrent constraint programming. In Proc. of the seventeenth ACM Symposium on Principles of Programming Languages, pages 232–245. ACM, New York, 1990.Google Scholar
  20. [20]
    E.Y. Shapiro. The family of concurrent logic programming languages. ACM Computing Surveys, 21(3):412–510, 1989.Google Scholar
  21. [21]
    E.Y. Shapiro. Separating concurrent languages with categories of language embeddings. In Proc. of STOCS, 1991. To appear.Google Scholar
  22. [22]
    G.L.Jr. Steele and G.J. Sussman. Lambda: The ultimate imperative. Technical Report Memo 353, MIT AI Lab., 1976.Google Scholar
  23. [23]
    F. Vaandrager. Expressiveness results for process algebra. Technical report, MIT Lab. for Comp. Sci., Cambridge, USA, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Frank S. de Boer
    • 1
  • Catuscia Palamidessi
    • 2
    • 3
  1. 1.Technische Universiteit EindhovenEindhovenThe Netherlands
  2. 2.Centre for Mathematics and Computer ScienceAmsterdamThe Netherlands
  3. 3.Department of Computer ScienceUtrecht UniversityUtrechtThe Netherlands

Personalised recommendations