A Spreadsheet Core Implementation in C#
TR-2006-91, Author: Peter Sestoft
A Spreadsheet Core Implementation in C#
September 2006
Abstract
One purpose of this report and the accompanying implementation isto enable experiments with innovative spreadsheet functionality andimplementation techniques. Thus we have attempted to collect andpresent a considerable body of knowledge about spreadsheetimplementation. The report also presents implementation techniquesthat are believed to be new, and reports on some experiments withthem.
The report includes:
- A description of the spreadsheet computation model as known from e.g. VisiCalc and Microsoft Excel, the challenges of efficient recalculation, and a survey of spreadsheet literature and existing implementations.
- A description of CoreCalc, which is our implementation of core spreadsheet functionality, and a discussion of design alternatives.
- An investigation of a possibly novel way to represent the support graph, which is a device for achieving minimal recalculation.
- Summaries of two MSc projects using the core spreadsheet codebase. One project uses runtime .NET code generation to speed up recalculation, by which it achieves speeds comparable to Microsoft Excel. The other project implements so-called function sheets, permitting users to define functions as sheets (instead of a programming language), as proposed by Peyton Jones, Blackwell and Burnett in 2003.
- A list of all known US patents and patent applications related to spreadsheet implementation
Available as pdf.