An Abstract Machine for Strong Call by Value

09/15/2020
by   Małgorzata Biernacka, et al.
0

We present an abstract machine that implements a full-reducing (a.k.a. strong) call-by-value strategy for pure λ-calculus. It is derived using Danvy et al.'s functional correspondence from Crégut's KN by: (1) deconstructing KN to a call-by-name normalization-by-evaluation function akin to Filinski and Rohde's, (2) modifying the resulting normalizer so that it implements the right-to-left call-by-value function application, and (3) constructing the functionally corresponding abstract machine. This new machine implements a reduction strategy that subsumes the fireball-calculus variant of call by value studied by Accattoli et al. We describe the strong strategy of the machine in terms of a reduction semantics and prove the correctness of the machine using a method based on Biernacka et al.'s generalized refocusing. As a byproduct, we present an example application of the machine to checking term convertibility by discriminating on the basis of their partially normalized forms.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/11/2021

Strong Call by Value is Reasonable for Time

The invariance thesis of Slot and van Emde Boas states that all reasonab...
research
09/21/2023

Strong Call-by-Value and Multi Types

This paper provides foundations for strong (that is, possibly under abst...
research
02/28/2018

The Dynamic Geometry of Interaction Machine: A Token-Guided Graph Rewriter

In implementing evaluation strategies of the lambda-calculus, both corre...
research
02/19/2018

Efficient Implementation of Evaluation Strategies via Token-Guided Graph Rewriting

In implementing evaluation strategies of the lambda-calculus, both corre...
research
05/17/2018

Strict Ideal Completions of the Lambda Calculus

The infinitary lambda calculi pioneered by Kennaway et al. extend the ba...
research
02/06/2020

Product Kanerva Machines: Factorized Bayesian Memory

An ideal cognitively-inspired memory system would compress and organize ...
research
06/08/2018

Formal Small-step Verification of a Call-by-value Lambda Calculus Machine

We formally verify an abstract machine for a call-by-value lambda-calcul...

Please sign up or login with your details

Forgot password? Click here to reset