Incremental Programming
The idea of incremental programming is to build up a representation of our program that can efficiently react to changes. Instead of recomputing everything all the time, we try to compute minimal updates . The Attribute Graph is an example of an incremental system.
Examples
-
Makefiles
-
Spreadsheets
-
Build Systems
-
…
References
-
Build Systems a la Carte is a Haskell paper about different approaches to incremental programming. It compares spreadsheets, build systems and other things through a unified framework.
-
How to Recalculate a Spreadsheet. This shows different strategies of incremental computing as applied to spreadsheet computation. It talks about dirty marking (similar to the Attribute Graph) and topological sorting (similar to incremental).
-
Demystify Parallelization in Swift Builds talks about how Swift builds are incremental.