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....
[...]