# Distilling abstract machines

##### Citations

61 citations

### Cites background or methods from "Distilling abstract machines"

...This notion of reduction is deterministic and tightly related to the p-calculus [3] and Krivine Abstract Machine [7, 14]....

[...]

...In parallel, Accattoli, Barenbaum and Mazza [7] studied the relationship between abstract machines and calculi at a distance obtaining that weak LHR is the strategy implemented by the Krivine Abstract Machine, up to a certain notion of structural equivalence....

[...]

...Moreover, [7] contains similar correspondences between machines for call-by-value (the CEK and Leroy’s ZINC) and callby-need (Sestoft’s machine) and some variations over weak LHR....

[...]

...In parallel, Accattoli, Barenbaum and Mazza [7] studied the relationship between abstract machines and calculi at a distance obtaining that weak LHR is the strategy implemented by the Krivine Abstract Machine, up to a certain notion of structural equivalence....

[...]

...This notion of reduction is deterministic and tightly related to the π-calculus [3] and Krivine Abstract Machine [7, 14]....

[...]

48 citations

### Additional excerpts

...In particular, building on the already established relationships between the LSC and abstract machines [5], we expect to be able to design an abstract machine implementing LOU evaluation and testing for usefulness in time linear in the size of the starting term....

[...]

43 citations

[...]

42 citations

### Cites background or methods from "Distilling abstract machines"

...On the other hand, it forces to use explicit α-renamings (in e), but this does not affect the overall complexity, as it speeds up other operations, see [8]....

[...]

...In [7] the study of the GLAMOUr was done according to the distillation approach of [8], i....

[...]

...optimized to be reasonable) Open (reducing open terms) Global (using a single global environment) LAM, and LAM stays for Leroy Abstract Machine, an ordinary machine implementing left-to-right call-byvalue, defined in [8]....

[...]

...According to the distillation approach we distinguish different kinds of transitions, whose names reflect a proof-theoretical view, as machine transitions can be seen as cutelimination steps [8, 9]: • Multiplicative m: it morally fires a→rβf -redex, except that its action puts a new ES in the environment instead of substituting the argument, as→m in λvsub; • Exponential e: performs a clashing-avoiding substitution from the environment on the single occurrence represented by the current code....

[...]

38 citations

##### References

1,240 citations

979 citations

### "Distilling abstract machines" refers background or methods in this paper

...For the acquainted reader, the new stack morally is the dump of Landin’s SECD machine [35] (but beware that the original definition of the SECD is quite more technical)....

[...]

...Some are standard (KAM [34], CEK [28], a sketch of the ZINC [37]), some are new (MAM, MAD), and of others we provide simpler versions (SECD [35], Lazy KAM [19, 24], Sestoft’s [44])....

[...]

...The split CEK can be seen as a simplification of Landin’s SECD machine [35]....

[...]

299 citations

### "Distilling abstract machines" refers background or methods in this paper

...The call-by-need calculus we use—that is a contextual reformulation of Maraist, Odersky, and Wadler’s calculus [38]—is a novelty of this paper....

[...]

...1) is a novelty of this paper, and can be seen either as a version at a distance of the calculi of [13, 38] or as a version with explicit substitution of the one in [17]....

[...]

210 citations

### "Distilling abstract machines" refers background or methods in this paper

...10 we will present the Pointing MAD, a variant of the MAD (akin to Sestoft’s machine for CBNeed [44]) that avoids saving E1 in a dump entry, and restoring the store view of the global environment....

[...]

...Some are standard (KAM [34], CEK [28], a sketch of the ZINC [37]), some are new (MAM, MAD), and of others we provide simpler versions (SECD [35], Lazy KAM [19, 24], Sestoft’s [44])....

[...]

...It can be seen as a simpler version of Sestoft’s Abstract Machine [44], here called SAM....

[...]

204 citations

### "Distilling abstract machines" refers background or methods in this paper

...The LAM owes its name to Leroy’s ZINC machine [37], that implements right-to-left CBV evaluation....

[...]

...Some are standard (KAM [34], CEK [28], a sketch of the ZINC [37]), some are new (MAM, MAD), and of others we provide simpler versions (SECD [35], Lazy KAM [19, 24], Sestoft’s [44])....

[...]

...On the other hand, [16] provides a deeper analysis of Leroy’s ZINC machine, as ours does not account for the avoidance of needless closure creations that is a distinct feature of the ZINC, and [24] focuses on the distinction between store-based and storeless call-by-need, a distinction that we address only implicitly (the calculus is storeless, but—as it will be discussed along the paper—it is meant to be implemented with a store)....

[...]

...We introduce a new name because the ZINC is a quite more sophisticated machine than the LAM: it has a separate sets of instructions to which terms are compiled, it handles arithmetic expressions, and it avoids needless closure creations in a way that it is not captured by the LAM....

[...]