Rewriting High-Level Spreadsheet Structures into Higher-Order Functional Programs
Spreadsheets are used heavily in industry and academia. Often, spreadsheet models are developed for years and their complexity grows vastly beyond what the paradigm was originally conceived for. Such complexity often comes at the cost of maintainability and understandability, as well as recalculation performance. The former have been the subject of prior research, with a focus on helping users understand the high-level structure of spreadsheet models. However, the high-level structure could also be used to improve recalculation performance. In this paper, we devise rules for rewriting high-level spreadsheet structure over cell arrays into higher-order functional programs. This rewriting allows us to exploit implicit parallelism, thereby speeding up spreadsheet recalculation. We implement our rule set for the experimental Funcalc spreadsheet engine which already implements parallelizable higher-order functions on arrays and additionally user-defined higher-order functions. Benchmarks show that our rewriting approach improves recalculation performance for spreadsheets which are dominated by cell arrays, but also that sequential cell dependencies limit parallel speedup.
Tue 9 JanDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00
|Hygienic Source-Code Generation Using Functors|
A: Karl Crary Carnegie Mellon University
|Snaarkl: Somewhat Practical, Pretty Much Declarative Verifiable Computing in Haskell|
|Rewriting High-Level Spreadsheet Structures into Higher-Order Functional Programs|