Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
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.
Bougé, L., On the Existence of Symmetric Algorithms to Find Leaders in Networks of Communicating Sequential Processes, Acta Informatica, 25, pp. 179–201, 1988.
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, 1983
Carriero, N., and Gelernter, D., Linda in Context, Comm. ACM, 32(4), pp. 444–458, 1988.
Chandy, K.M., and Misra, J., Parallel Program Design, Addison-Wesley, 1988.
Gaifman, H., and Shapiro, E., Fully Abstract Compositional Semantics for Logic Programs, Proc. ACM Symposium on Principles of Programming Languages, pp. 134–142, 1989.
Gaifman, H., Maher, M.J., and Shapiro, E., Replay, Recovery, Replication, and Snapshots of Nondeterministic Concurrent Programs, Proc. PODC'91, ACM,1991.
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.
Hennessy, M., Algebraic Theory of Processes, MIT Press, 1988.
Hewitt, C., A Universal, Modular Actor Formalism for Artificial Intelligence, Proc. International Joint Conference on Artificial Intelligence, 1973.
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.
Hoare, C.A.R., Communicating Sequential Processes, Comm. ACM, 21(8), pp. 666–677, 1978.
Hoare, C.A.R., Communicating Sequential Processes, Prentice Hall, New Jersey, 1985.
INMOS Ltd., OCCAM Programming Manual, Prentice-Hall, New Jersey, 1984.
Jonsson, B., A Fully Abstract Trace Model for Dataflow Networks, 16th Annual ACM Symposium on Principles of Programming Languages, pp. 155–165, 1989.
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.
Kahn, G., The Semantics of a Simple Language for Parallel Programming, Information Processing 74, pp. 993–998, North-Holland, 1977.
Kahn, K., and Saraswat, V.A., Actors as a Special Case of Concurrent Constraint (Logic) Programming, Xerox Technical Report, 1990.
Kleinman, A., Moscowitz, Y., Pnueli, A., and Shapiro, E., Communication with Directed Logic Variables, Proc. of ACM POPL, 1991.
Lynch, N.A., and Fischer, M.J., On Describing the Behavior and Implementation of Distributed Systems, TCS, 13, pp. 17–43, 1981.
Lynch, N.A., and Tuttle, M.R., Hierarchical Correctness Proofs for Distributed Algorithms, Proc. ACM Symposium PODC'87, 1987.
Milner, R., A Calculus of Communicating Systems, Lecture Notes in Computer Science 92, Springer-Verlag, 1980.
Milner, R., Communication and Concurrency, Prentice-Hall, 1989.
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.
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.
Russel, J.R., Full Abstraction for Nondeterministic Dataflow Networks, Proc. 30 th IEEE FOCS, pp.170–175, 1989.
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.
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.
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.
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.
Shapiro, E. (Editot), Concurrent Prolog: Collected Papers, Vols. 1 & 2, MIT Press, 1987.
Shapiro, E., The Family of Concurrent Logic Programming Languages, ACM Computing Surveys 21(3), pp. 412–510, 1989.
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.
Shapiro, E., Separating Concurrent Languages with Categories of Language Embeddings, Proc. STOC'91, ACM, pp.198–208, 1991.
De Simone, R., Higher-Level Synchronizing Devices in MEIJE-SCCS, Theoretical Computer Science, Vol. 37, pp.245–267, 1985.
Ueda, K., Guarded Horn Clauses, Ph.D. Thesis, Information Engineering Course, University of Tokyo, Tokyo, 1986.
Vaandrager, F.W., On the Relationship Between Process Algebra and Input/Output Automata, Proc. LICS'91, IEEE, pp.387–398, 1991.
Yardeni, E., Kliger, S., and Shapiro, E., The Languages FCP(:) and FCP(:,?), J. New Generation Computing, 7, pp. 89–107, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shapiro, E. (1992). Embeddings among concurrent programming languages. In: Cleaveland, W. (eds) CONCUR '92. CONCUR 1992. Lecture Notes in Computer Science, vol 630. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0084811
Download citation
DOI: https://doi.org/10.1007/BFb0084811
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55822-4
Online ISBN: 978-3-540-47293-3
eBook Packages: Springer Book Archive