Self-Adjusting Stack Machines

被引:3
|
作者
Hammer, Matthew A. [1 ]
Neis, Georg [1 ]
Chen, Yan [1 ]
Acar, Umut A. [1 ]
机构
[1] Max Planck Inst Software Syst, Saarbrucken, Germany
关键词
Languages;
D O I
10.1145/2076021.2048124
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Self-adjusting computation offers a language-based approach to writing programs that automatically respond to dynamically changing data. Recent work made significant progress in developing sound semantics and associated implementations of self-adjusting computation for high-level, functional languages. These techniques, however, do not address issues that arise for low-level languages, i.e., stack-based imperative languages that lack strong type systems and automatic memory management. In this paper, we describe techniques for self-adjusting computation which are suitable for low-level languages. Necessarily, we take a different approach than previous work: instead of starting with a high-level language with additional primitives to support self-adjusting computation, we start with a low-level intermediate language, whose semantics is given by a stack-based abstract machine. We prove that this semantics is sound: it always updates computations in a way that is consistent with full reevaluation. We give a compiler and runtime system for the intermediate language used by our abstract machine. We present an empirical evaluation that shows that our approach is efficient in practice, and performs favorably compared to prior proposals.
引用
收藏
页码:753 / 772
页数:20
相关论文
共 50 条
  • [1] Self-Adjusting Stack Machines
    Hammer, Matthew A.
    Neis, Georg
    Chen, Yan
    Acar, Umut A.
    [J]. OOPSLA 11: PROCEEDINGS OF THE 2011 ACM INTERNATIONAL CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS, 2011, : 753 - 772
  • [2] A SELF-ADJUSTING CONTROLLER
    DAVIES, WDT
    [J]. BRITISH CHEMICAL ENGINEERING, 1967, 12 (08): : 1227 - &
  • [3] SELF-ADJUSTING HEAPS
    SLEATOR, DD
    TARJAN, RE
    [J]. SIAM JOURNAL ON COMPUTING, 1986, 15 (01) : 52 - 69
  • [4] Self-adjusting computation
    Harper, R
    [J]. AUTOMATA , LANGUAGES AND PROGRAMMING, PROCEEDINGS, 2004, 3142 : 1 - 2
  • [5] Self-adjusting Bootstrapping
    Fujiwara, Shoji
    Sekine, Satoshi
    [J]. COMPUTATIONAL LINGUISTICS AND INTELLIGENT TEXT PROCESSING, PT II, 2011, 6609 : 188 - +
  • [6] Self-adjusting Linear Networks
    Avin, Chen
    van Duijn, Ingo
    Schmid, Stefan
    [J]. STABILIZATION, SAFETY, AND SECURITY OF DISTRIBUTED SYSTEMS, SSS 2019, 2019, 11914 : 368 - 382
  • [7] Self-adjusting Linear Networks
    Avin, Chen
    van Duijn, Ingo
    Schmid, Stefan
    [J]. STRUCTURAL INFORMATION AND COMMUNICATION COMPLEXITY, SIROCCO 2019, 2019, 11639 : 332 - 335
  • [8] SELF-ADJUSTING TURBINE METERS
    LANGE, E
    [J]. PIPELINE & GAS JOURNAL, 1985, 212 (05) : 50 - &
  • [9] A Library for Self-Adjusting Computation
    Acar, Umut
    Blelloch, Guy
    Blume, Matthias
    Harper, Robert
    Tangwongsan, Kanat
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2006, 148 (02) : 127 - 154
  • [10] The dynamic self-adjusting EAF
    Ruscio, E
    Bergman, K
    Olund, S
    [J]. IRONMAKING & STEELMAKING, 2005, 32 (03) : 199 - 202