Embeddings among concurrent programming languages

Preliminary version
  • Ehud Shapiro
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 630)


We relate several well-known concurrent programming languages by demonstrating mappings among them that are homomorphic with respect to parallel composition and preserve fully-abstract semantic distinctions. The results are presented within a general framework for language comparison based on language embeddings, and complement our earlier negative results presented within this framework. Together, the positive and negative results induce a nontrivial preordering on the family of concurrent programming languages that quite often coincides with previous intuitions on the “expressive power” of these languages.

Our results reveal interesting connections between hitherto unrelated concurrent languages and models of concurrency, and provide evidence to the viability of the theory of structural simplicity as a formal framework for the study of programming language expressiveness.


Transition System Parallel Composition Communicate Sequential Process Partial Algebra Binary Action 
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.
    de Boer, F.S., and Palamidessi, C., Embedding as a Tools for Language Comparison: On the CSP Hierarchy, Proc. of CONCUR'91, LNCS, Springer, 1991.Google Scholar
  2. 2.
    Bougé, L., On the Existence of Symmetric Algorithms to Find Leaders in Networks of Communicating Sequential Processes, Acta Informatica, 25, pp. 179–201, 1988.zbMATHMathSciNetCrossRefGoogle Scholar
  3. 3.
    Brookes, S.D., On the Relationship of CCS and CSP, Proc. of 10th Colloq. on Automata, Languages and Programming, Lecture Notes in Computer Science 154, Springer-Verlag, pp.83–96, 1983Google Scholar
  4. 4.
    Carriero, N., and Gelernter, D., Linda in Context, Comm. ACM, 32(4), pp. 444–458, 1988.CrossRefGoogle Scholar
  5. 5.
    Chandy, K.M., and Misra, J., Parallel Program Design, Addison-Wesley, 1988.Google Scholar
  6. 6.
    Gaifman, H., and Shapiro, E., Fully Abstract Compositional Semantics for Logic Programs, Proc. ACM Symposium on Principles of Programming Languages, pp. 134–142, 1989.Google Scholar
  7. 7.
    Gaifman, H., Maher, M.J., and Shapiro, E., Replay, Recovery, Replication, and Snapshots of Nondeterministic Concurrent Programs, Proc. PODC'91, ACM,1991.Google Scholar
  8. 8.
    Goldman, K.J., and Lynch, N.A., Modelling Shared State in a Shared Action Model, Proc. 5 th Annual Symposium on Logic in Computer Science, pp. 450–463, IEEE, 1990.Google Scholar
  9. 9.
    Hennessy, M., Algebraic Theory of Processes, MIT Press, 1988.Google Scholar
  10. 10.
    Hewitt, C., A Universal, Modular Actor Formalism for Artificial Intelligence, Proc. International Joint Conference on Artificial Intelligence, 1973.Google Scholar
  11. 11.
    Hirata, M., Programming Language Doc and its Self-Description, or, X = X is Considered Harmful, Proc. 3 rd Conference of Japan Society of Software Science and Technology, pp. 69–72, 1986.Google Scholar
  12. 12.
    Hoare, C.A.R., Communicating Sequential Processes, Comm. ACM, 21(8), pp. 666–677, 1978.zbMATHMathSciNetCrossRefGoogle Scholar
  13. 13.
    Hoare, C.A.R., Communicating Sequential Processes, Prentice Hall, New Jersey, 1985.zbMATHGoogle Scholar
  14. 14.
    INMOS Ltd., OCCAM Programming Manual, Prentice-Hall, New Jersey, 1984.Google Scholar
  15. 15.
    Jonsson, B., A Fully Abstract Trace Model for Dataflow Networks, 16th Annual ACM Symposium on Principles of Programming Languages, pp. 155–165, 1989.Google Scholar
  16. 16.
    Jifeng H., Josephs, M.B., and Hoare, C.A.R., A Theory for Synchrony and Asynchrony, Proc. of IFIP TC 2 Working Conf. on Programming Concenpt and Methods, Sea of Gallilee, Israel, April, 1990.Google Scholar
  17. 17.
    Kahn, G., The Semantics of a Simple Language for Parallel Programming, Information Processing 74, pp. 993–998, North-Holland, 1977.Google Scholar
  18. 18.
    Kahn, K., and Saraswat, V.A., Actors as a Special Case of Concurrent Constraint (Logic) Programming, Xerox Technical Report, 1990.Google Scholar
  19. 19.
    Kleinman, A., Moscowitz, Y., Pnueli, A., and Shapiro, E., Communication with Directed Logic Variables, Proc. of ACM POPL, 1991.Google Scholar
  20. 20.
    Lynch, N.A., and Fischer, M.J., On Describing the Behavior and Implementation of Distributed Systems, TCS, 13, pp. 17–43, 1981.zbMATHMathSciNetCrossRefGoogle Scholar
  21. 21.
    Lynch, N.A., and Tuttle, M.R., Hierarchical Correctness Proofs for Distributed Algorithms, Proc. ACM Symposium PODC'87, 1987.Google Scholar
  22. 22.
    Milner, R., A Calculus of Communicating Systems, Lecture Notes in Computer Science 92, Springer-Verlag, 1980.Google Scholar
  23. 23.
    Milner, R., Communication and Concurrency, Prentice-Hall, 1989.Google Scholar
  24. 24.
    Misra, J., Loosely-Coupled Processes, in E.H.L. Aarts, J. van Leeuwen, M. Ram (eds.), Proc. of PARLE'91: Parallel Architectures and Languages Europe, Vol. 2, LNCS 506, Springer, pp.1–26, 1989.Google Scholar
  25. 25.
    Mitchell, J., On Abstraction and the Expressive Power of Programming Languages, Proc. of the Int'l Conference on Theoretical Aspects of Computer Science, Sendai, Japan, LNCS 526, Springer, pp.290–310, 1991.Google Scholar
  26. 26.
    Russel, J.R., Full Abstraction for Nondeterministic Dataflow Networks, Proc. 30 th IEEE FOCS, pp.170–175, 1989.Google Scholar
  27. 27.
    Safra, S., Partial Evaluation of Concurrent Prolog and its Implications, M.Sc. Thesis, Technical Report CS86-24, Dept. of Computer Science, Weizmann Institute of Science, 1986.Google Scholar
  28. 28.
    Saraswat, V.A., Partial Correctness Semantics for CP[↓,-,&], Proc. 5 th Conference on Foundations of Software Technology and Theoretical Computer Science, New-Delhi, LNCS 205, Springer, pp.347–368, 1985.Google Scholar
  29. 29.
    Saraswat, V.A., A Somewhat Logical Formulation of CLP Synchronization Primitives, in Bowen, K., and Kowalski, R.A. (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 1298–1314, MIT Press, 1988.Google Scholar
  30. 30.
    Saraswat, V.A., Kahn, K., and Levy, J., Janus: A Step Towards Distributed Constraint Programming, Proc. 1990 North American Conference on Logic Programming, S. Debray and M. Hermenegildo (Eds.), MIT Press, 1990.Google Scholar
  31. 31.
    Shapiro, E. (Editot), Concurrent Prolog: Collected Papers, Vols. 1 & 2, MIT Press, 1987.Google Scholar
  32. 32.
    Shapiro, E., The Family of Concurrent Logic Programming Languages, ACM Computing Surveys 21(3), pp. 412–510, 1989.CrossRefGoogle Scholar
  33. 33.
    Shapiro, E., Embedding Linda and other joys of concurrent logic programming, Technical Report CS89-07, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1989.Google Scholar
  34. 34.
    Shapiro, E., Separating Concurrent Languages with Categories of Language Embeddings, Proc. STOC'91, ACM, pp.198–208, 1991.Google Scholar
  35. 35.
    De Simone, R., Higher-Level Synchronizing Devices in MEIJE-SCCS, Theoretical Computer Science, Vol. 37, pp.245–267, 1985.zbMATHMathSciNetCrossRefGoogle Scholar
  36. 36.
    Ueda, K., Guarded Horn Clauses, Ph.D. Thesis, Information Engineering Course, University of Tokyo, Tokyo, 1986.Google Scholar
  37. 37.
    Vaandrager, F.W., On the Relationship Between Process Algebra and Input/Output Automata, Proc. LICS'91, IEEE, pp.387–398, 1991.Google Scholar
  38. 38.
    Yardeni, E., Kliger, S., and Shapiro, E., The Languages FCP(:) and FCP(:,?), J. New Generation Computing, 7, pp. 89–107, 1990.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Ehud Shapiro
    • 1
  1. 1.Department of Applied Mathematics and Computer ScienceThe Weizmann Institute of ScienceRehovotIsrael

Personalised recommendations