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 条
  • [31] Monadic Abstract Interpreters
    Sergey, Ilya
    Devriese, Dominique
    Might, Matthew
    Midtgaard, Jan
    Darais, David
    Clarke, Dave
    Piessens, Frank
    ACM SIGPLAN NOTICES, 2013, 48 (06) : 399 - 409
  • [32] Proof theory in the abstract
    Hyland, JME
    ANNALS OF PURE AND APPLIED LOGIC, 2002, 114 (1-3) : 43 - 78
  • [33] The York Abstract Machine
    Manning, Greg
    Plump, Detlef
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2008, 211 : 231 - 240
  • [34] Humanizing Machines: Anthropomorphization of Slot Machines Increases Gambling
    Riva, Paolo
    Sacchi, Simona
    Brambilla, Marco
    JOURNAL OF EXPERIMENTAL PSYCHOLOGY-APPLIED, 2015, 21 (04) : 313 - 325
  • [35] Abstract compilation for sharing analysis
    Amato, G
    Spoto, F
    FUNCTIONAL AND LOGIC PROGRAMMING, PROCEEDINGS, 2001, 2024 : 311 - 325
  • [36] Stochastic λ-calculi: An extended abstract
    Scott, Dana S.
    JOURNAL OF APPLIED LOGIC, 2014, 12 (03) : 369 - 376
  • [37] Zen and the Abstract Machine of Knitting
    von Busch, Otto
    TEXTILE-CLOTH AND CULTURE, 2013, 11 (01): : 6 - 19
  • [38] The Linear Logical Abstract Machine
    Bonelli, Eduardo
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2006, 158 (99-121) : 99 - 121
  • [39] An experiment in abstract machine design
    Diehl, S
    SOFTWARE-PRACTICE & EXPERIENCE, 1997, 27 (01): : 49 - 62
  • [40] About Parallel and Syntactocentric Formalisms: A Perspective from the Encoding of Convergent Grammar into Abstract Categorial Grammar
    de Groote, Philippe
    Pogodalla, Sylvain
    Pollard, Carl
    FUNDAMENTA INFORMATICAE, 2011, 106 (2-4) : 211 - 231