Results 1 
5 of
5
The Expressive Power of Higherorder Types or, Life without CONS
, 2001
"... Compare firstorder functional programs with higherorder 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 pa ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
Compare firstorder functional programs with higherorder 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, higherorder values may be firstorder 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: secondorder programs are more powerful than firstorder, since a function f of type [Bool]〉Bool is computable by a consfree firstorder functional program if and only if f is in PTIME, whereas f is computable by a consfree secondorder program if and only if f is in EXPTIME. Exact characterizations are given for those problems of type [Bool]〉Bool solvable by programs with several combinations of operations on data: presence or absence of constructors; the order of data values: 0, 1, or higher; and program control structures: general recursion, tail recursion, primitive recursion.
The complexity of βreduction in low orders
, 2000
"... We study the complexity of βreduction for redexes of order 2,3 and 4. The obtained results are: evaluation of boolean expressions can be reduced to βreduction of order 2 and βreduction of order 2 is in O(nlog n), βreduction of order 3 is complete for PTIME, and βreduction of order 4 is complete ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We study the complexity of βreduction for redexes of order 2,3 and 4. The obtained results are: evaluation of boolean expressions can be reduced to βreduction of order 2 and βreduction of order 2 is in O(nlog n), βreduction of order 3 is complete for PTIME, and βreduction of order 4 is complete for PSPACE. 1
New Lower Bounds for the Expressiveness and the HigherOrder Matching Problem in the Simply Typed Lambda Calculus
, 1999
"... The contribution of this paper is threefold: 1) We analyze expressiveness of the simply typed lambda calculus (STLC) over a single base type, and show how kDEXPTIME computations can be simulated in the order k + 6 STLC. This gives a double order improvement over the lower bound of (Hillebrand & Ka ..."
Abstract
 Add to MetaCart
The contribution of this paper is threefold: 1) We analyze expressiveness of the simply typed lambda calculus (STLC) over a single base type, and show how kDEXPTIME computations can be simulated in the order k + 6 STLC. This gives a double order improvement over the lower bound of (Hillebrand & Kanellakis 1996), reducing kDEXPTIME to the order 2k + 3 STLC. ...
Theoretical Foundations for Practical ‘Totally Functional Programming’
, 2007
"... Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt ..."
Abstract
 Add to MetaCart
Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability
of interpretation with observations that definitions and a certain style of programming appear to
offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes,
theoretical as well as practical. Primary among these are novel programming languages to lessen or
eliminate the use of interpretation in programming, leading to betterquality software. However,
TFP contains a number of lacunae in its current formulation, which hinder development of these
outcomes. Among others, formal semantics and typesystems for TFP languages are yet to be
discovered, the means to reduce interpretation in programs is to be determined, and a detailed
explication is needed of interpretation, definition, and the differences between the two. Most
important of all however is the need to develop a complete understanding of the nature of
interpretation. In this work, suitable typesystems for TFP languages are identified, and guidance
given regarding the construction of appropriate formal semantics. Techniques, based around the
‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of
interpretation they contain. Interpretation as a means of languageextension is also investigated.
v
Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in
detail. Combining the results of those analyses with discoveries from elsewhere in this work leads
to the proposal that interpretation is not, in fact, symbolbased computation, but is in fact something
more fundamental: computation that varies with input. We discuss in detail various implications of
this characterisation, including its practical application. An often moreuseful property, ‘inherent
interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give
conceptual and theoretical foundations for practical TFP.
General Terms
"... While relational algebra and calculus are a wellestablished foundation for classical database query languages, it is less clear what the analog is for higherorder functions, such as query transformations. Here we study a natural way to add higherorder functionality to query languages, by adding d ..."
Abstract
 Add to MetaCart
While relational algebra and calculus are a wellestablished foundation for classical database query languages, it is less clear what the analog is for higherorder functions, such as query transformations. Here we study a natural way to add higherorder functionality to query languages, by adding database query operators to the λcalculus as constants. This framework, which we refer to as λembedded query languages, was introduced in [BPV10]. That work had a restricted focus: the containment and equivalence problems for querytoquery functions, in the case where only positive relational operators are allowed as constants. In this work we take an indepth look at the most basic issue for such languages: the evaluation problem. We give a full picture of the complexity of evaluation for λembedded query languages, looking at a number of variations: with negation and without; with only relational algebra operators, and also with a recursion mechanism in the form of a query iteration operator; in a stronglytyped calculus as well as a weaklytyped one. We give tight bounds on both the combined complexity and the query complexity of evaluation in all these settings, in the process explaining connections with Datalog and prior work on λcalculus evaluation.