Separating Concurrent Languages with Categories of Language Embeddings

   page       BibTeX_logo.png   
Ehud Shapiro
23rd Annual ACM Symposium on Theory of Computing (STOC'91), pages 198-208
ACM, New York, NY, USA

Concurrent programming enjoys a proliferation of languages but suffers from the lack of a general method of language comparison.
In particular, concurrent (as well as sequential) programming languages cannot be usefully distinguished based on complexity-theoretic considerations, since most of them are Turing-complete.
Nevertheless, differences between programming languages matter, else we would not invented many of them.

We develop a general method for comparing concurrent programming languages based on their algebraic (structured) complexity, and, using this method, achieve separation results among many well-known concurrent languages.

The method is not restricted to concurrent languages.
It can be used to compare the complexity of abstract machine models, other families of programming languages, logics, and, more generally, any family of languages with some syntactic operations and a notion of semantic equivalence.
The method can also be used to compare the algebraic complexity of families of operations within a language or across languages.
We note that using the method we were able to compare languages and computational models that do not have a common semantic basis.