Self-Adjusting Stack Machines
Matthew A. Hammer, Georg Neis, Yan Chen, Umut A. Acar

TL;DR
This paper introduces techniques for self-adjusting computation in low-level, stack-based imperative languages, providing a sound semantics, a compiler, runtime, and demonstrating practical efficiency.
Contribution
It develops a novel approach for self-adjusting computation starting from a low-level language, with formal soundness proofs and practical implementation.
Findings
The semantics is proven sound and consistent with full reevaluation.
The implementation performs efficiently in empirical tests.
The approach compares favorably to prior high-level solutions.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Ferroelectric and Negative Capacitance Devices · Logic, programming, and type systems
