Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applicatio 2015
DOI: 10.1145/2814270.2814305
|View full text |Cite
|
Sign up to set email alerts
|

Incremental computation with names

Abstract: Over the past thirty years, there has been significant progress in developing general-purpose, language-based approaches to incremental computation, which aims to efficiently update the result of a computation when an input is changed. A key design challenge in such approaches is how to provide efficient incremental support for a broad range of programs. In this paper, we argue that first-class names are a critical linguistic feature for efficient incremental computation. Names identify computations to be reus… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
14
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
3
3
2

Relationship

0
8

Authors

Journals

citations
Cited by 27 publications
(14 citation statements)
references
References 36 publications
0
14
0
Order By: Relevance
“…Most incremental systems, e.g. [3,4,22] evaluate the program and use programmer-supplied information to build a dependency graph, whereas our system uses static code analysis; [23] implement a small adaptive interpreter that treats code as changing input data, suggesting an implementation technique for live programming systems. Our use of dependency graphs [32] is static and first-order and can be seen as a form of program slicing [59], although our binding process is more directly inspired by Roslyn [40], which uses it for efficient background type-checking.…”
Section: Related and Future Workmentioning
confidence: 99%
“…Most incremental systems, e.g. [3,4,22] evaluate the program and use programmer-supplied information to build a dependency graph, whereas our system uses static code analysis; [23] implement a small adaptive interpreter that treats code as changing input data, suggesting an implementation technique for live programming systems. Our use of dependency graphs [32] is static and first-order and can be seen as a form of program slicing [59], although our binding process is more directly inspired by Roslyn [40], which uses it for efficient background type-checking.…”
Section: Related and Future Workmentioning
confidence: 99%
“…As usual, incrementalization is not efficient on arbitrary programs, but only on programs designed so that input changes produce small changes to the computation trace; refinement type systems have been designed to assist in this task [8,12]. To identify matching inputs, Nominal Adapton [13] replaces input comparisons by pointer equality with first-class labels, enabling more reuse.…”
Section: Related Workmentioning
confidence: 99%
“…Adapton [8,9] is a library for on-demand (lazy) incremental computation. Like the Pluto and our hybrid algorithm, Adapton supports a form of dynamic task dependencies: dynamic computation dependencies which form a computation graph.…”
Section: Related Workmentioning
confidence: 99%