In implementing evaluation strategies of the lambda-calculus, both
correctness and efficiency of implementation are valid concerns. While the
notion of correctness is determined by the evaluation strategy, regarding
efficiency there is a larger design space that can be explored, in particular
the trade-off between space versus time efficiency. We contributed to the study
of this trade-off by the introduction of an abstract machine for call-by-need,
inspired by Girard's Geometry of Interaction, a machine combining token passing
and graph rewriting. This work presents an extension of the machine, to
additionally accommodate left-to-right and right-to-left call-by-value
strategies. We show soundness and completeness of the extended machine with
respect to each of the call-by-need and two call-by-value strategies. Analysing
time cost of its execution classifies the machine as "efficient" in Accattoli's
taxonomy of abstract machines.Comment: In Proceedings WPTE 2017, arXiv:1802.0586