Results 1 
5 of
5
On the Expressive Power of Programming Languages
 Science of Computer Programming
, 1990
"... The literature on programming languages contains an abundance of informal claims on the relative expressive power of programming languages, but there is no framework for formalizing such statements nor for deriving interesting consequences. As a first step in this direction, we develop a formal noti ..."
Abstract

Cited by 132 (4 self)
 Add to MetaCart
The literature on programming languages contains an abundance of informal claims on the relative expressive power of programming languages, but there is no framework for formalizing such statements nor for deriving interesting consequences. As a first step in this direction, we develop a formal notion of expressiveness and investigate its properties. To validate the theory, we analyze some widely held beliefs about the expressive power of several extensions of functional languages. Based on these results, we believe that our system correctly captures many of the informal ideas on expressiveness, and that it constitutes a foundation for further research in this direction. 1 Comparing Programming Languages The literature on programming languages contains an abundance of informal claims on the expressive power of programming languages. Arguments in these contexts typically assert the expressibility or nonexpressibility of programming constructs relative to a language. Unfortunately, pro...
Embedding as a tool for Language Comparison
, 1994
"... This paper addresses the problem of defining a formal tool to compare the expressive power of different concurrent constraint languages. We refine the notion of embedding by adding some "reasonable" conditions, suitable for concurrent frameworks. The new notion, called modular embedding, is used to ..."
Abstract

Cited by 32 (5 self)
 Add to MetaCart
This paper addresses the problem of defining a formal tool to compare the expressive power of different concurrent constraint languages. We refine the notion of embedding by adding some "reasonable" conditions, suitable for concurrent frameworks. The new notion, called modular embedding, is used to define a preorder among these languages, representing different degrees of expressiveness. We show that this preorder is not trivial (i.e. it does not collapse into one equivalence class) by proving that Flat CP cannot be embedded into Flat GHC, and that Flat GHC cannot be embedded into a language without communication primitives in the guards, while the converses hold. 4 A; C; D; G; M;O;P;R; T : In calligraphic style. ss; ff ; dd: In slanted style. \Sigma; \Gamma; #; oe; ; /; ΓΈ; ff. S ; [; "; ;; 2 j=; 6j=; ; 9 +; k; ~ +; ~ k; ! \Gamma! W ; \Gamma! ; ; \Gamma! W ; \Gamma! ; h; i; [[; ]]; d; e ffi; ?; ; 5 All reasonable programming languages are equivalent, since they are Turing...
Separating concurrent languages with categories of language embeddings
 In Proceedings of the 23 rd Annual ACM Symposium on Theory of Computing
, 1991
"... 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 complexitytheoretic considerations, since most of them ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
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 complexitytheoretic considerations, since most of them are Turingcomplete. Nevertheless, differences between programming languages matter, else we would not have invented so many of them. We develop a general method for comparing concurrent programming languages based on their algebraic (structural) complexity, and, using this method, achieve separation results among many wellknown concurrent languages. The method is not restricted to concurrent languages. It can be used to compare the algebraic complexity of abstract machine models, other families of programming languages, logics, and, more generaly, 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 wit hin 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.
Embedding as a tool for Language Comparison: On the CSP hierarchy
, 1991
"... The concept of embedding has recently been introduced as a formal tool to study the relative expreive 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 pri ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
The concept of embedding has recently been introduced as a formal tool to study the relative expreive 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 CSPx (the version of CSP with no output guards), and that CSPx is strictly more powerful than CSP (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 ir relevant to have or not to have them in the language. Therefore, ACSP and ACSPx are equivalent. Still, they are strictly more expressive than ACSP. 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, CSPz, ACSP, and ACSPx are equivalent. An interesting corollary of these results is that ACSP is strictly less powerful than CSP.
Equivalence of linear, free, liberal, structured program schemas is decidable in polynomial time
, 2004
"... A program schema defines a class of programs, all of which have identical statement structure, but whose expressions may differ. We define a class of syntactic similarity binary relations between linear structured schemas and show that these relations characterise schema equivalence for structured s ..."
Abstract

Cited by 6 (6 self)
 Add to MetaCart
A program schema defines a class of programs, all of which have identical statement structure, but whose expressions may differ. We define a class of syntactic similarity binary relations between linear structured schemas and show that these relations characterise schema equivalence for structured schemas which are linear, free and liberal. In this paper we prove that similarity implies equivalence for linear schemas; the proof of a nearconverse for schemas that are linear, free and liberal (LFL), which is much longer, is given in a Technical Report, which also contains the results of this paper. Our main result considerably extends the class of program schemas for which equivalence is known to be decidable, and suggests that linearity is a constraint worthy of further investigation. Key words: structured program schemas, conservative schemas, liberal schemas, free schemas, linear schemas, schema equivalence, static analysis, program slicing Preprint submitted to Elsevier Science 2 August 2006 1