Rewriting High-Level Spreadsheet Structures into Higher-Order Functional Programs

Florian Biermann, Wensheng Dou, Peter Sestoft

Research output: Conference Article in Proceeding or Book/Report chapterArticle in proceedingsResearchpeer-review


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 recalculation performance. However, spreadsheet models usually have some high-level structure that can be used to improve performance by performing independent computation in parallel. In this paper, we devise rules for rewriting high-level spreadsheet structure in the form of so-called cell arrays into higher-order functional programs that can be easily parallelized on multicore processors. We implement our rule set for the experimental Funcalc spreadsheet engine which already implements parallelizable higher-order array functions as well as user-defined higher-order functions. Benchmarks show that our rewriting approach improves recalculation performance for spreadsheets that are dominated by cell arrays.
Original languageEnglish
Title of host publicationInternational Symposium on Practical Aspects of Declarative Languages : PADL 2018: Practical Aspects of Declarative Languages
Number of pages16
Publication date22 Dec 2017
ISBN (Print)978-3-319-73304-3
ISBN (Electronic)978-3-319-73305-0
Publication statusPublished - 22 Dec 2017
EventInternational Symposium on Practical Aspects of Declarative Languages - Los Angeles, United States
Duration: 8 Jan 20189 Jan 2018
Conference number: 20


ConferenceInternational Symposium on Practical Aspects of Declarative Languages
Country/TerritoryUnited States
CityLos Angeles
Internet address
SeriesLecture Notes in Computer Science


  • arrays
  • expression rewriting
  • functional programming
  • parallelism
  • performance
  • spreadsheets

Cite this