The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Constant time factors do matter
STOC '93 Proceedings of the twenty-fifth annual ACM symposium on Theory of computing
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proving the correctness of recursion-based automatic program transformations
TAPSOFT '95 Selected papers from the 6th international joint conference on Theory and practice of software development
Improvement in a lazy context: an operational theory for call-by-need
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Linear-time hierarchies for a functional language machine model
Science of Computer Programming - Special issue on the 6th European symposium on programming
The next 700 programming languages
Communications of the ACM
A Theory of Objects
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Partial Evaluation, Self-Application and Types
ICALP '90 Proceedings of the 17th International Colloquium on Automata, Languages and Programming
What Not to Do When Writing an Interpreter for Specialisation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Safety of nöcker's strictness analysis
Journal of Functional Programming
On Constructor Rewrite Systems and the Lambda-Calculus
ICALP '09 Proceedings of the 36th Internatilonal Collogquium on Automata, Languages and Programming: Part II
Declassification: Dimensions and principles
Journal of Computer Security - 18th IEEE Computer Security Foundations Symposium (CSF 18)
Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
A Two-Valued Logic for Properties of Strict Functional Programs Allowing Partial Functions
Journal of Automated Reasoning
Hi-index | 0.00 |
The equational theories at the core of most functional programming are variations on the standard lambda calculus. The best-known of these is the call-by-value lambda calculus whose core is the value-beta computation rule (λx.M) V → M [V/x] where V is restricted to be a value rather than an arbitrary term.This paper investigates the transformational power of this core theory of functional programming. The main result is that the equational theory of the call-by-value lambda calculus cannot speed up (or slow down) programs by more than a constant factor. The corresponding result also holds for call-by-need but we show that it does not hold for call-byname: there are programs for which a single beta reduction can change the program's asymptotic complexity.