Distilling Abstract Machines

被引:5
|
作者
Accattoli, Beniamino [1 ,2 ]
Barenbaum, Pablo [3 ]
Mazza, Damiano [4 ]
机构
[1] Carnegie Mellon Univ, Pittsburgh, PA 15213 USA
[2] Univ Bologna, I-40126 Bologna, Italy
[3] Univ Buenos Aires, CONICET, RA-1053 Buenos Aires, DF, Argentina
[4] Univ Paris 13, CNRS, Sorbonne Paris Cite, LIPN,UMR 7030, F-93430 Villetaneuse, France
关键词
Lambda-calculus; abstract machines; explicit substitutions; linear logic; call-by-need; linear head reduction; CALL-BY-VALUE; NEED;
D O I
10.1145/2692915.2628154
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
It is well-known that many environment-based abstract machines can be seen as strategies in lambda calculi with explicit substitutions (ES). Recently, graphical syntaxes and linear logic led to the linear substitution calculus (LSC), a new approach to ES that is halfway between small-step calculi and traditional calculi with ES. This paper studies the relationship between the LSC and environment-based abstract machines. While traditional calculi with ES simulate abstract machines, the LSC rather distills them: some transitions are simulated while others vanish, as they map to a notion of structural congruence. The distillation process unveils that abstract machines in fact implement weak linear head reduction, a notion of evaluation having a central role in the theory of linear logic. We show that such a pattern applies uniformly in call-by-name, call-by-value, and call-by-need, catching many machines in the literature. We start by distilling the KAM, the CEK, and a sketch of the ZINC, and then provide simplified versions of the SECD, the lazy KAM, and Sestoft's machine. Along the way we also introduce some new machines with global environments. Moreover, we show that distillation preserves the time complexity of the executions, i.e. the LSC is a complexity-preserving abstraction of abstract machines.
引用
收藏
页码:363 / 376
页数:14
相关论文
共 50 条
  • [21] A syntactic correspondence between context-sensitive calculi and abstract machines
    Biernacka, Malgorzata
    Danvy, Olivier
    THEORETICAL COMPUTER SCIENCE, 2007, 375 (1-3) : 76 - 108
  • [22] On the syntactic and functional correspondence between hybrid (or layered) normalisers and abstract machines
    Garcia-Perez, A.
    Nogueira, P.
    SCIENCE OF COMPUTER PROGRAMMING, 2014, 95 : 176 - 199
  • [23] A functional correspondence between call-by-need evaluators and lazy abstract machines
    Ager, MS
    Danvy, O
    Midtgaard, J
    INFORMATION PROCESSING LETTERS, 2004, 90 (05) : 223 - 232
  • [24] New Developments in Environment Machines
    Fernandez, Maribel
    Siafakas, Nikolaos
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 237 : 57 - 73
  • [25] Abstract abstract reduction
    Struth, G
    JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2006, 66 (02): : 239 - 270
  • [26] On the equivalence between small-step and big-step abstract machines: a simple application of lightweight fusion
    Danvy, Olivier
    Millikin, Kevin
    INFORMATION PROCESSING LETTERS, 2008, 106 (03) : 100 - 109
  • [27] An Abstract Machine for Strong Call by Value
    Biernacka, Malgorzata
    Biernacki, Dariusz
    Charatonik, Witold
    Drab, Tomasz
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2020, 2020, 12470 : 147 - 166
  • [28] A concrete framework for environment machines
    Biernacka, Malgorzata
    Brics, Olivier Danvy
    ACM TRANSACTIONS ON COMPUTATIONAL LOGIC, 2008, 9 (01)
  • [29] A Simple and Efficient Implementation of Strong Call by Need by an Abstract Machine
    Biernacka, Malgorzata
    Charatonik, Witold
    Drab, Tomasz
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (ICFP):
  • [30] The Session Abstract Machine
    Caires, Luis
    Toninho, Bernardo
    PROGRAMMING LANGUAGES AND SYSTEMS, PT I, ESOP 2024, 2024, 14576 : 206 - 235