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...
|
1415
|
The Definition of Standard ML
– Milner, Tofte, et al.
- 1990
|
|
806
|
A Theory of Type Polymorphism in Programming
– Milner
- 1978
|
|
603
|
A Formulation of the Simple Theory of Types', The
– Church
- 1940
|
|
506
|
Introduction to Metamathematics
– KLEENE
- 1952
|
|
353
|
Multilisp: a language for concurrent symbolic computation
– Halstead
- 1985
|
|
327
|
LCF considered as a programming language
– Plotkin
- 1977
|
|
246
|
An initial algebra approach to the specification, correctness, and implementation of abstract data types’, in: Current Trends in Programming Methodology, edited by R.T
– Goguen, Thatcher, et al.
|
|
225
|
Call-by-name, call-by-value, and the -calculus
– Plotkin
- 1975
|
|
208
|
The revised report on the syntactic theories of sequential control and state
– Felleisen, Hieb
- 1992
|
|
171
|
A Course in Universal Algebra
– Burris, Sankappanavar
- 1981
|
|
161
|
The Lambda Calculus: Its Syntax and Semantics, revised edition. Studies in Logic and the Foundations of Mathematics, North Holland
– Barendregt
- 1984
|
|
138
|
The Next 700 Programming Languages
– Landin
- 1966
|
|
127
|
Complete type inference for simple objects
– Wand
- 1987
|
|
118
|
Revised report on the algorithmic language Algol 60
– Naur
- 1963
|
|
111
|
Lambda Calculus Models of Programming Languages
– Morris
- 1982
|
|
99
|
The theory and practice of first-class prompts
– Felleisen
- 1988
|
|
99
|
A syntactic theory of sequential control
– Felleisen, Friedman, et al.
- 1987
|
|
99
|
Metamathematical investigation of intuitionistic arithmetic and analysis Springer LNM 344
– Troelstra
- 1973
|
|
92
|
Revised report on the algorithmic language scheme
– Rees, Clinger
- 1986
|
|
82
|
Control operators, the SECD-machine, and the -calculus
– Felleisen, Friedman
- 1986
|
|
72
|
CONS should not evaluate its arguments
– Friedman, Wise
- 1976
|
|
52
|
Scheme: an interpreter for extended lambda calculus
– Sussman, Steele
- 1975
|
|
47
|
The Incremental Garbage Collection of Processes
– Hewitt
- 1977
|
|
38
|
GEDANKEN, A Simple Typeless Language Base d on
– Reynolds
- 1970
|
|
34
|
the ultimate imperative
– Sussman, Lambda
- 1976
|
|
33
|
A syntactic theory of sequential state
– Felleisen, Friedman
- 1989
|
|
29
|
The Expressiveness of Simple and Second-Order Type Structures
– Fortune, Leivant, et al.
- 1983
|
|
29
|
Comparative schematology
– Paterson, Hewitt
- 1970
|
|
28
|
Syntactic Extension in the Programming Language Lisp
– Kohlbecker
- 1986
|
|
25
|
Reasoning with continuations II: Full abstraction for models of control
– Sitaram, Felleisen
|
|
24
|
The lazy *-calculus
– Abramsky
- 1989
|
|
15
|
The Calculi of Lambda-v-CS-Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages
– Felleisen
- 1987
|
|
12
|
Fully Abstract Models of the Lazy Lambda Calculus
– Ong
- 1988
|
|
10
|
A Lambda Calculus Approach
– Landin
- 1966
|
|
9
|
S'equentialit'e de l'evaluation formelle des -expressions
– Berry
- 1978
|
|
8
|
Continuations may be unreasonable
– Meyer, Riecke
- 1988
|
|
7
|
Semantical Paradigms
– Meyer, Cosmodakis
- 1988
|
|
6
|
A types-as-sets semantics for Milner-style polymorphism
– Wand
- 1984
|
|
5
|
The power of programming features
– Chandra, Manna
- 1975
|
|
5
|
The varieties of programming language
– Hoare
- 1989
|
|
4
|
A complete and decidable proof system for call-by-value equalities
– Riecke
- 1990
|
|
3
|
Notational definition—a formal account
– Griffin
- 1988
|
|
3
|
Single-threaded polymorphic lambda calculus
– an, C, et al.
- 1990
|
|
1
|
The essence of Algol. In Algorithmic Languages, edited by de Bakker and
– Reynolds
- 1981
|
|
1
|
On the formalization of semantic conventions. Draft version
– Williams
- 1988
|