MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

The Expressive Power of Higher-order Types or, Life without CONS [13 citations — 2 self]

Abstract:

Compare first-order functional programs with higher-order programs allowing functions as function parameters. Can the the first program class solve fewer problems than the second? The answer is no: both classes are Turing complete, meaning that they can compute all partial recursive functions. In particular, higher-order values may be first-order simulated by use of the list constructor "cons" to build function closures. This paper uses complexity theory to prove some expressivity results about small programming languages that are less than Turing complete. Complexity classes of decision problems are used to characterize the expressive power of functional programming language features. An example: second-order programs are more powerful than first-order, since a function f of type [Bool]-?Bool is computable by a cons-free first-order functional program if and only if f is in ptime, whereas f is computable by a cons-free second-order program if and only if f is in exptime. Exact chara...

Citations

167 The Formal Semantics of Programming Languages: An Introduction – WINSKEL - 1993
143 A new recursion-theoretic characterization of the polytime functions – Bellantoni, Cook - 1992
103 The intrinsic computational difficulty of functions – Cobham - 1962
66 Toward logic tailored for computational complexity – GUREVICH - 1984
65 The complexity of computing – Savage - 1987
60 Computability and Complexity from a Programming Perspective. Foundations of Computing – Jones - 1997
55 Programming in an integrated functional and logic language – Lloyd - 1998
51 Feasible Functions – Gurevich - 1993
37 Expressibility as a complexity measure: Results and directions – Immerman - 1987
35 Some classes of recursive functions – Grzegorczyk - 1953
35 Elementary strong functional programming – Turner - 1995
33 A tutorial on the universality and expressiveness of fold – Hutton - 1999
30 Descriptive characterizations of computational complexity – Leivant - 1989
29 Lambda-calculus characterizations of poly-time – Leivant, Marion - 1993
28 Denotational Semantics – Schmidt - 1986
20 Polynomial computability and recursivity in finite domains. Elektronische Informationsverarbeitung und Kybernetik – Sazonov - 1980
16 Predicative recurrence and computational complexity IV: Predicative functionals and poly-space – Leivant, Marion
15 Characterizing complexity classes by higher type primitive recursive definitions – Goerdt - 1992
15 Type systems for polynomial-time computation, Habilitation thesis – Hofmann - 1999
12 Pure versus impure lisp – Pippenger - 1996
10 logsp ace and ptime characterized by programming languages. The or etic al Computer Scienc e – Jones - 1998
9 Subrecursion as a basis for a feasible programming language – Voda - 1995
6 Characterizing complexity classes by general recursive de nitions in higher types – Goerdt - 1989
6 Finite Model Theory in the Simply Typed Lambda Calculus – Hillebrand - 1994
6 Recursion versus iteration at higher-orders – Kfoury - 1997
4 On the expressive power of finitely typed and universally polymorphic recursive procedures – Kfoury, Tiuryn, et al. - 1992
2 On the expressive power of simply typed and let-polymorphic lambda calculi – Hillebrand - 1996
1 A.Turing machines and the spectra of first-order formulae with equality – Jones, Selman - 1974
1 The hierarchy of functional programs – Kfoury, Tiuryn, et al. - 1987
1 Applicative control and computational complexity. Unpublished manuscript – Leivant - 1999
1 Time analysis of lazy versus eager evaluation – Neergaard - 1999
1 Comparative schematology. MIT A.I. Lab Technical Memo no. 201 (also – Paterson, Hewitt - 1970
1 On the expressive power of simply typed and letThe Expressive Power of Higher-order Types or, Life without CONS 39 polymorphic lambda calculi – Hillebrand, Kanellakis - 1996