
Strong Call by Value is Reasonable for Time
The invariance thesis of Slot and van Emde Boas states that all reasonab...
read it

Crumbling Abstract Machines
Extending the lambdacalculus with a construct for sharing, such as let ...
read it

The Weak CallByValue λCalculus is Reasonable for Both Time and Space
We study the weak callbyvalue λcalculus as a model for computational ...
read it

Useful Open CallbyNeed
This paper studies useful sharing, which is a sophisticated optimization...
read it

An Abstract Machine for Strong Call by Value
We present an abstract machine that implements a fullreducing (a.k.a. s...
read it

Sharing and Learning Alloy on the Web
We present Alloy4Fun, a web application that enables online editing and ...
read it

The Dynamic Geometry of Interaction Machine: A TokenGuided Graph Rewriter
In implementing evaluation strategies of the lambdacalculus, both corre...
read it
Strong CallbyValue is Reasonable, Implosively
Whether the number of betasteps in the lambdacalculus 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) callbyvalue 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 callbyname is reasonable, by introducing a new form of useful sharing and, later, an abstract machine with an overhead quadratic in the number of betasteps. Here we show that also strong callbyvalue 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 speedup. We give examples of families that the machine executes in time logarithmic in the number of betasteps.
READ FULL TEXT
Comments
There are no comments yet.