Optimizing a Non-Deterministic Abstract Machine with Environments - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Preprints, Working Papers, ... Year : 2024

Optimizing a Non-Deterministic Abstract Machine with Environments

Abstract

Non-deterministic abstract machine (NDAM) is a recent implementation model for programming languages where one must choose among several redexes at each reduction step, like process calculi. These machines can be derived from a zipper semantics, a mix between structural operational semantics and context-based reduction semantics. Such a machine has been generated also for the lambda-calculus without a fixed reduction strategy, i.e., with the full non-deterministic beta-reduction. In that machine, substitution is an external operation that replaces all the occurrences of a~variable at once. Implementing substitution with environments is more low-level and more efficient as variables are replaced only when needed. In this paper, we define a NDAM with environments for the lambda-calculus without a fixed reduction strategy. We also introduce other optimizations, including a form of refocusing, and we show that we can restrict our optimized NDAM to recover some of the usual $\lambda$-calculus machines, e.g., the Krivine Abstract Machine. Most of the improvements we propose in this work could be applied to other NDAMs as well.
Fichier principal
Vignette du fichier
fscd-long.pdf (596.42 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-04568253 , version 1 (06-05-2024)

Licence

Attribution

Identifiers

  • HAL Id : hal-04568253 , version 1

Cite

Małgorzata Biernacka, Dariusz Biernacki, Sergueï Lenglet, Alan Schmitt. Optimizing a Non-Deterministic Abstract Machine with Environments. 2024. ⟨hal-04568253⟩
0 View
0 Download

Share

Gmail Facebook X LinkedIn More