## On the Expressive Power of Programming Languages (1990)

Venue: | Science of Computer Programming |

Citations: | 138 - 8 self |

### BibTeX

@INPROCEEDINGS{Felleisen90onthe,

author = {Matthias Felleisen},

title = {On the Expressive Power of Programming Languages},

booktitle = {Science of Computer Programming},

year = {1990},

pages = {134--151},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

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 non-expressibility of programming constructs relative to a language. Unfortunately, pro...

### Citations

1658 | The Definition of Standard ML - Milner, Tofte, et al. - 1990 |

1008 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ...s. Ast program is not only closed but is also typable as either an integer or a higher-order functional on integers according to the type inference system in Figure 2. It easily follows from Milner's =-=[27]-=- initial work on polymorphism that typability is a recursive predicate forst . The semantics ofst -programs is the same as that of their untyped counterparts. t is a typical example of a monomorphic l... |

909 |
A Formulation of the Simple Theory of Types
- Church
- 1940
(Show Context)
Citation Context ...oping, Definition 3.1 only accounts for this fact through the recursive selection of programs from the set of phrases. An explicit inclusion of the lexical scoping structure through a Church encoding =-=[7]-=- of the language in a typed lambda calculus is a feasible and interesting alternative but would probably lead to a slightly different definition of expressibility and expressiveness. Phrases e ::= x j... |

789 |
Introduction to Metamathematics
- Kleene
- 1964
(Show Context)
Citation Context ... systems is a peripheral topic in logical studies and finds little or no space in most textbooks. The following short overview summarizes and adapts Troelstra's [42:I.2] descriptions of Kleene's work =-=[21]-=-. A formal system is a triple of sets: expressions, formulae, and theorems. The second is a subset of the first, the third a subset of the second. Expressions are freely generated (in the sense of a t... |

483 | MULTILISP: A language for concurrent symbolic computation
- Halstead
- 1985
(Show Context)
Citation Context ...with compiler annotations, which also preserve the operational equivalences but do not increase the expressive power of a language, e.g., futures for indicating opportunities for parallel evaluations =-=[2, 19]-=- and single-threaded destructive updates in functional languages [18]. Cartwright, Dan Friedman, Robert Hieb, John Lamping, Scott Smith, Rebecca Selke, Carolyn Talcott, Mitchell Wand and numerous of m... |

420 |
LCF Considered as a Programming Language
- Plotkin
- 1977
(Show Context)
Citation Context ... termination behavior of the surrounding programs. This relation between two phrases of programming languages is widely studied in semantics and is known as operational (or observational) equivalence =-=[25, 29, 33, 34]-=-. After developing the formal definition of operational equivalence, we can characterize sufficient conditions for the eliminability of programming constructs. A formal definition of the operational e... |

347 | A course in universal algebra
- Burris, Sankappanavar
- 1981
(Show Context)
Citation Context ...f the set of formulae, and the set of terminating programs is the analog of the set of theorems. In the terminology of universal algebra, the set of expressions is the universe of a free term algebra =-=[5]-=-; instead of relying on the more typical algebraic 1 We assume that there is enough structure on an infinite set of constructors for specifying the decidability of predicates and the recursiveness of ... |

286 |
An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types,” IBM
- GOGUEN, THATCHER, et al.
(Show Context)
Citation Context ... .. 8 In Lisp-like languages, syntactic abstractions are realized as macros [22]; logical frameworks know them as notational abbreviations [17]. The terminology of equational algebraic specifications =-=[16]-=- refers to syntactic abstractions as derived operators. Proof. It is easy to see that the additional condition in the antecedent is precisely what is needed to adapt the proof of Theorem 3.6 to the st... |

272 | The revised report on the syntactic theories of sequential control and state
- Felleisen, Hieb
- 1992
(Show Context)
Citation Context ..., �� =ps denotes the operational equivalence relation on Pure Scheme; other indexes correspond to extensions of Pure Scheme and should be self-explanatory. The main characteristic of Idealized Sch=-=eme [11, 12, 13]-=- is the extension of the functional core language Pure Scheme with type predicates, local branching constructs, and imperative facilities: ffl branching expressions for the local manipulation of contr... |

224 |
call-by-value, and the ¡ -calculus
- Plotkin
- 1975
(Show Context)
Citation Context ... is only one recursive constraint that distinguishes programs from arbitrary phrases. The operational semantics ofsreflects the semantics of realistic programming languages like Iswim, ML, and Scheme =-=[34]-=-. 4 The specification of the semantics in Figure 1 follows the style of extensible operational semantics [8, 10], which is easily adaptable to the imperative extensions ofsin the following section. An... |

211 |
The next 700 programming languages
- Landin
- 1966
(Show Context)
Citation Context ...sions from expressiveness claims or to use them for an objective decision about the use of a programming language. Supported in part by NSF grant CCR 89-17022 and Darpa/NSF grant CCR 87-20277. Landin =-=[24]-=- was the first to propose the development of a formal framework for comparing programming languages. He studied the relationship between programming languages and constructs, and began to classify som... |

210 |
The Lambda Calculus: Its Syntax and Semantics. revised edn
- Barendregt
- 1984
(Show Context)
Citation Context ...programming language world does not know such ubiquitous constructs as the logical connectors. Our prototypical example of a programming language is a derivative of the languagesof the pure -calculus =-=[3]-=-. Figure 1 summarizes its (concrete) syntax and semantics. In order to compare the expressiveness of call-by-value and call-by-name procedures later in this section, we extendswith a new constructor,s... |

177 | Revised report on the algorithmic language Algol 60 - Naur - 1962 |

148 |
The theory and practice of first-class prompts
- Felleisen
- 1988
(Show Context)
Citation Context ...f our modeling of Scheme. A more realistic model of Scheme systems (as opposed to the Scheme semantics [35]) would have to include the interactive loop, which provides a delimiter for control actions =-=[9]-=-. By including an appropriate version of this delimiter in PS(control), abort becomes macro-expressible as a combination of call/cc and the control delimiter [39]. Put differently, interactive program... |

146 | Complete type inference for simple objects - Wand - 1987 |

140 |
Lambda-Calculus Models of Programming Languages
- Morris
- 1968
(Show Context)
Citation Context ... termination behavior of the surrounding programs. This relation between two phrases of programming languages is widely studied in semantics and is known as operational (or observational) equivalence =-=[25, 29, 33, 34]-=-. After developing the formal definition of operational equivalence, we can characterize sufficient conditions for the eliminability of programming constructs. A formal definition of the operational e... |

139 | ed.): Metamathematical investigation of intuitionistic arithmetic and analysis - Troelstra |

123 |
A syntactic theory of sequential control
- Felleisen, Friedman, et al.
- 1987
(Show Context)
Citation Context ..., �� =ps denotes the operational equivalence relation on Pure Scheme; other indexes correspond to extensions of Pure Scheme and should be self-explanatory. The main characteristic of Idealized Sch=-=eme [11, 12, 13]-=- is the extension of the functional core language Pure Scheme with type predicates, local branching constructs, and imperative facilities: ffl branching expressions for the local manipulation of contr... |

94 |
CONS should not evaluate its arguments
- Friedman, Wise
- 1976
(Show Context)
Citation Context ...use the call-by-name parameter-passing protocol instead of Pure Scheme's call-by-value technique. Alternatively, such languages offer data constructors, say cons, that do not evaluate their arguments =-=[15]-=-. It is a widely held belief that such provisions are superfluous in the presence of higher-order procedural abstractions. Evaluation Contexts E ::= ff j (u . . . E e . . .) where u = v n fcons$g Addi... |

93 |
The revised report on the algorithmic language Scheme
- Rees, Clinger
- 1986
(Show Context)
Citation Context ...ity of predicates and the recursiveness of translations on the set of phrases. In the following examples, this is obviously the case. 2 A notable exception is Scheme as defined in the standard report =-=[35]-=-, which only has a recursively enumerable set of programs: An expression is a Scheme program if and only if it has the same result for all possible evaluation orders in its applications. We consider t... |

86 |
Control operators, the SECD-machine, and the -calculus
- Felleisen, Friedman
- 1986
(Show Context)
Citation Context ...cs ofsreflects the semantics of realistic programming languages like Iswim, ML, and Scheme [34]. 4 The specification of the semantics in Figure 1 follows the style of extensible operational semantics =-=[8, 10]-=-, which is easily adaptable to the imperative extensions ofsin the following section. An evaluation is a sequence of reduction steps on programs according to the normal-order strategy. If the program ... |

82 | The incremental garbage collection of processes
- Baker, Hewitt
- 1977
(Show Context)
Citation Context ...with compiler annotations, which also preserve the operational equivalences but do not increase the expressive power of a language, e.g., futures for indicating opportunities for parallel evaluations =-=[2, 19]-=- and single-threaded destructive updates in functional languages [18]. Cartwright, Dan Friedman, Robert Hieb, John Lamping, Scott Smith, Rebecca Selke, Carolyn Talcott, Mitchell Wand and numerous of m... |

79 | Scheme: An interpreter for extended lambda calculus
- Sussman, Jr
- 1975
(Show Context)
Citation Context ...-calculus-based languages as well as a number of meta-theorems. Next, we study the expressiveness of an idealized version of Scheme and verify the informal expressiveness philosophy behind its design =-=[41]-=-. Following this analysis, we briefly speculate how the use of a more expressive language increases programming convenience. Finally, we compare our ideas to related work and address some open questio... |

44 | GEDANKEN - a simple typeless language based on the principle of completeness and the reference concept
- Reynolds
- 1970
(Show Context)
Citation Context ...mers would consider it a loss if a goto-free, Algol-like language had a while but not a repeat construct. After all, repeat s until e is expressible as s; while :e do s: Others, most notably Reynolds =-=[36, 37]-=- and Steele and Sussman [40], followed Landin's example. They introduced the informal notion of the core of a language and studied the expressiveness of imperative extensions of higher-order functiona... |

42 |
Comparative schematology
- Paterson, Hewitt
- 1970
(Show Context)
Citation Context ... attempt at defining and comparing the expressive power of programming languages is the work on comparative schematology by Chandra, Hewitt, Manna, Paterson, and others in the early and mid seventies =-=[6, 32]-=-. Schematology studies programming languages with a simple set of control constructs, e.g., while-loop programs or recursion equations, and with uninterpreted constant and function symbols. As in pred... |

41 |
Lambda: The ultimate imperative
- Steele, Sussman
- 1976
(Show Context)
Citation Context ... a goto-free, Algol-like language had a while but not a repeat construct. After all, repeat s until e is expressible as s; while :e do s: Others, most notably Reynolds [36, 37] and Steele and Sussman =-=[40]-=-, followed Landin's example. They introduced the informal notion of the core of a language and studied the expressiveness of imperative extensions of higher-order functional languages. Steele and Suss... |

37 |
A syntactic theory of sequential state
- Felleisen, Friedman
- 1989
(Show Context)
Citation Context ..., �� =ps denotes the operational equivalence relation on Pure Scheme; other indexes correspond to extensions of Pure Scheme and should be self-explanatory. The main characteristic of Idealized Sch=-=eme [11, 12, 13]-=- is the extension of the functional core language Pure Scheme with type predicates, local branching constructs, and imperative facilities: ffl branching expressions for the local manipulation of contr... |

37 |
The expressiveness of simple and second-order type structures
- Fortune
- 1983
(Show Context)
Citation Context ...nction, the approach can no longer compare the expressive power of programming languages since everything can be encoded and all functions become computable. A second approach is due to Fortune et al =-=[14]-=-. Their basic observation is that statically typed languages without facilities for constructing diverging programs can only encode a subset of the total computable functions. For example, whereas the... |

32 |
Syntactic Extensions in the Programming Language Lisp
- Kohlbecker
- 1986
(Show Context)
Citation Context .... ; '(e a i )) for all L-expressions e 1 ; . . . ; e a i , then L 0 can macro-express the facilities F 1 ; . . . ; F n ; . . .. 8 In Lisp-like languages, syntactic abstractions are realized as macros =-=[22]-=-; logical frameworks know them as notational abbreviations [17]. The terminology of equational algebraic specifications [16] refers to syntactic abstractions as derived operators. Proof. It is easy to... |

32 | Reasoning with continuations II: full abstraction for models of control
- Sitaram, Felleisen
- 1990
(Show Context)
Citation Context ...ovides a delimiter for control actions [9]. By including an appropriate version of this delimiter in PS(control), abort becomes macro-expressible as a combination of call/cc and the control delimiter =-=[39]-=-. Put differently, interactive programming systems actually add expressive power to the programming language. Peter Lee [personal communication] pointed out another example of this phenomenon: The add... |

23 |
The lazy -calculus
- Abramsky
- 1990
(Show Context)
Citation Context ...luates first, the expression (YK) eventually appears in the hole of the evaluation context, which leads to an immediate termination of the program evaluation. 10 Gordon Plotkin pointed out Abramsky's =-=[1]-=- and Ong's [31] work on the lazy -calculus, which corrected a mistake in an early draft. In the full language , the above analysis no longer holds: Call-by-value procedures can evaluate and discard th... |

15 |
The Calculi of Lambda-v-CS-Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages
- Felleisen
- 1987
(Show Context)
Citation Context ...cs ofsreflects the semantics of realistic programming languages like Iswim, ML, and Scheme [34]. 4 The specification of the semantics in Figure 1 follows the style of extensible operational semantics =-=[8, 10]-=-, which is easily adaptable to the imperative extensions ofsin the following section. An evaluation is a sequence of reduction steps on programs according to the normal-order strategy. If the program ... |

15 |
Fully abstract models of the lazy lambda calculus
- Ong
- 1988
(Show Context)
Citation Context ... theorem by Ong [31: Thm. 4.1.1], 10 based on the preceding meta-theorem. Consider the phrases x( n y:x(YK)\Omega y)(YK) and x(x(YK)\Omega\Gamma1 YK). The two are equivalent in an adequate model ofsn =-=[31] and-=- are therefore operationally equivalent: x( n y:x(YK)\Omega y)(YK) �� =sn x(x(YK)\Omega\Gamma3 YK): The operational reasoning for a verification of this equivalence is as follows. No matter which ... |

11 |
Continuations may be unreasonable
- Meyer, Riecke
- 1988
(Show Context)
Citation Context ... the core language. 13 12 This example is a folk theorem example in the theoretical "continuation" community, but it was also used by Meyer and Riecke to argue the "unreasonableness&quo=-=t; of continuations [26]-=-. 13 The non-expressibility of abort appears to be an artifact of our modeling of Scheme. A more realistic model of Scheme systems (as opposed to the Scheme semantics [35]) would have to include the i... |

10 | A A. calculus approach - Landin - 1966 |

8 |
S'equentialit'e de l'evaluation formelle des *-expressions
- Berry
- 1978
(Show Context)
Citation Context ...or future extensions of our work. A secondary piece of related work is the study of the full abstraction property of mathematical models [25, 31, 33] and the representability of functions in -calculi =-=[3, 4]-=-. In many cases, the natural denotational model of a programming language contains too many elements so that operationally equivalent phrases have different mathematical meanings. Since it is relative... |

7 |
Semantical paradigms
- Meyer, Cosmadakis
- 1988
(Show Context)
Citation Context ... termination behavior of the surrounding programs. This relation between two phrases of programming languages is widely studied in semantics and is known as operational (or observational) equivalence =-=[25, 29, 33, 34]-=-. After developing the formal definition of operational equivalence, we can characterize sufficient conditions for the eliminability of programming constructs. A formal definition of the operational e... |

6 |
The Varieties of Programming Languages
- Hoare
- 1989
(Show Context)
Citation Context ...eir applicability to fullfledged programming languages is impossible because an equating of expressiveness with computational power is uninteresting from the programmer's perspective. Recently, Hoare =-=[20]-=- proposed classifying programming languages according to the equational and inequational laws that their programming constructs satisfy. He illustrates this idea with a collection of examples. The law... |

5 |
The power of programming features
- Chandra, Manna
- 1975
(Show Context)
Citation Context ... attempt at defining and comparing the expressive power of programming languages is the work on comparative schematology by Chandra, Hewitt, Manna, Paterson, and others in the early and mid seventies =-=[6, 32]-=-. Schematology studies programming languages with a simple set of control constructs, e.g., while-loop programs or recursion equations, and with uninterpreted constant and function symbols. As in pred... |

5 |
A complete and decidable proof system for call-by-value equalities (preliminary report
- Riecke
- 1990
(Show Context)
Citation Context ...\Omega n diverges. Figure 3 contains a sequent calculus of operational equivalence onsv + let, which is used below in Proposition 3.7; the proof system is similar to Riecke's for a typed version ofsv =-=[38]. Th-=-e calculus proves equations over the language from premisses (\Gamma) that are finite sets of equations. It is sound but incomplete, i.e., if ; ` e = e 0 then e �� = e 0 but not vice versa. Remark... |

5 |
A types-as-sets semantics for Milner-style polymorphism
- Wand
- 1984
(Show Context)
Citation Context ...(let x be e in e 0 ) =\Omega = (x:e 0 )e and, for all values v , e = v ` (let x be e in e 0 ) = e 0 [x=v] = (x:e 0 )e; 6 An alternative approach to a formalization of this folk theorem is due to Wand =-=[44]. an-=-d therefore, (let x be e in e 0 ) �� = +let (x:e 0 )e: The induction step proceeds along the same line. (ii ) Set '(let x be e in e 0 ) = (( v d:'(e 0 )[x='(e)])'(e)) where d does not occur free i... |

3 |
Notational definition—a formal account
- Griffin
- 1988
(Show Context)
Citation Context ... L 0 can macro-express the facilities F 1 ; . . . ; F n ; . . .. 8 In Lisp-like languages, syntactic abstractions are realized as macros [22]; logical frameworks know them as notational abbreviations =-=[17]-=-. The terminology of equational algebraic specifications [16] refers to syntactic abstractions as derived operators. Proof. It is easy to see that the additional condition in the antecedent is precise... |

3 |
Single-threaded polymorphic lambda calculus
- an, C, et al.
- 1990
(Show Context)
Citation Context ...ces but do not increase the expressive power of a language, e.g., futures for indicating opportunities for parallel evaluations [2, 19] and single-threaded destructive updates in functional languages =-=[18]-=-. Cartwright, Dan Friedman, Robert Hieb, John Lamping, Scott Smith, Rebecca Selke, Carolyn Talcott, Mitchell Wand and numerous of my patient seminar students suggested many improvements in the present... |

1 |
The essence of Algol. In Algorithmic Languages, edited by de Bakker and
- Reynolds
- 1981
(Show Context)
Citation Context ...mers would consider it a loss if a goto-free, Algol-like language had a while but not a repeat construct. After all, repeat s until e is expressible as s; while :e do s: Others, most notably Reynolds =-=[36, 37]-=- and Steele and Sussman [40], followed Landin's example. They introduced the informal notion of the core of a language and studied the expressiveness of imperative extensions of higher-order functiona... |

1 |
On the formalization of semantic conventions. Draft version
- Williams
- 1988
(Show Context)
Citation Context ...xpressiveness with the validity of operational equivalences in programming languages, this approach seems to be a related attempt at formalizing or comparing the expressiveness of languages. Williams =-=[45]-=- looks at a whole spectrum of formalization techniques for semantic conventions in formal systems and, in particular, programming languages. His work starts with ideas of applicative and definitional ... |