Log In Sign Up

Strong Call-by-Value is Reasonable, Implosively

by   Beniamino Accattoli, et al.

Whether the number of beta-steps in the lambda-calculus can be taken as a reasonable time cost model (that is, polynomially related to the one of Turing machines) is a delicate problem, which depends on the notion of evaluation strategy. Since the nineties, it is known that weak (that is, out of abstractions) call-by-value evaluation is a reasonable strategy while Lévy's optimal parallel strategy, which is strong (that is, it reduces everywhere), is not. The strong case turned out to be subtler than the weak one. In 2014 Accattoli and Dal Lago have shown that strong call-by-name is reasonable, by introducing a new form of useful sharing and, later, an abstract machine with an overhead quadratic in the number of beta-steps. Here we show that also strong call-by-value evaluation is reasonable for time, via a new abstract machine realizing useful sharing and having a linear overhead. Moreover, our machine uses a new mix of sharing techniques, adding on top of useful sharing a form of implosive sharing, which on some terms brings an exponential speed-up. We give examples of families that the machine executes in time logarithmic in the number of beta-steps.


page 1

page 2

page 3

page 4


Strong Call by Value is Reasonable for Time

The invariance thesis of Slot and van Emde Boas states that all reasonab...

The Weak Call-By-Value λ-Calculus is Reasonable for Both Time and Space

We study the weak call-by-value λ-calculus as a model for computational ...

Useful Open Call-by-Need

This paper studies useful sharing, which is a sophisticated optimization...

Crumbling Abstract Machines

Extending the lambda-calculus with a construct for sharing, such as let ...

Reasonable Space for the λ-Calculus, Logarithmically

Can the λ-calculus be considered as a reasonable computational model? Ca...

Multi Types and Reasonable Space (Long Version)

Accattoli, Dal Lago, and Vanoni have recently proved that the space used...

Sharing and Learning Alloy on the Web

We present Alloy4Fun, a web application that enables online editing and ...