TR-2011-142, Author: Peter Sestoft
Version 0.12 of 2012-01-31
This report describes the architecture, design, implementation and some uses of Funcalc, a spreadsheet program that supports end-user programming in the form of sheet-defined functions, much as proposed by Peyton-Jones, Blackwell and Burnett. Appendix A of the report contains a user manual for the Funcalc prototype, version 0.11.12.0.
The Funcalc programming platform supports highly interactive dynamically typed functional programming and data manipulation, with special focus on numeric computations, and using only standard spreadsheet concepts and notations. It achieves very good performance.
The Funcalc programming platform provides a number of unusual features, such as the creation of closures (partially applied functions), higher-order spreadsheet functions, and automatic specialization.
The report describes a number of technological innovations, such as minimal recalculation based on a compact representation of the dependencies between spreadsheet cells, and evaluation conditions that facilitate recursive functions.
The full source code of the Funcalc prototype implementation is available from http://www.itu.dk/people/sestoft/corecalc/.
Technical report TR-2011-142 in IT University Technical Report Series, December 2011.
Available as PDF and formatted two pages to one, in PDF