|Corecalc and Funcalc|
|Spreadsheet Technology in C#||
Corecalc and Funcalc
Corecalc is an implementation of core spreadsheet functionality in C#,
intended as a platform for experiments with technology and novel
functionality. Corecalc is a research prototype, not a usable
replacement for Microsoft Excel, Gnumeric or OpenOffice Calc.
Funcalc is an extension of Corecalc in which users can
define their own functions via sheet-defined functions, without
resorting to external languages such as VBA. These are compiled to
.NET bytecode at run-time, thus offering high performance while
preserving the usual mode of interaction in which all edits take
effect immediately. Funcalc is a research prototype.
The goal of this work is to improve the support for end-user
development, which to a large extent takes place within
spreadsheets. However, current spreadsheet programs provide little
support for abstraction and reuse of computations, unless one uses
external languages such as VBA. We want to demonstrate that
abstraction and reuse can be supported within the standard
spreadsheet metaphor cells, formulas and extreme interactivity, yet
with excellent performance.
- June 2014: My book Spreadsheet Implementation
Technology appeared at MIT Press in September 2014.
book's Amazon.com page and its MIT
- June 2014: Jonas Druedahl Rask and Simon Eikeland
Timmermann's MSc thesis
describing Funsheet, an Excel plugin providing sheet-defined
functions through the Funcalc implementation.
- A dump of the Funcalc 0.14.0.0
source code as of 27 September 2014, as a Visual Studio 2012
solution. Binaries and examples are in
SDFCalc/CoreCalc/bin/Release/. You will need NET 4.5 or later to
When I find the time, I will further clean up the source code,
add more method documentation, and move the source to Github to
facilitate sharing and branching.
- Here is the Funcalc source code
prettyprinted as PDF in dense A4 format.
Corecalc (old, superseded by Funcalc)
- The report A Spreadsheet Core Implementation in C#
(ITU-TR-2006-91, 135 pages).
The report contains an introduction to
the spreadsheet computation model, a survey of spreadsheet literature
and implementations, a description of the Corecalc implementation and
design alternatives, a detailed presentation of one way to support
efficient recalculation, summaries of the work of Iversen's and of
Cortes and Hansen, and a list of all known spreadsheet-related patents
and patent applications.
- Corecalc code base version 0.7.1 (zip
of a VS2008 solution)
Student projects contributing to or using Corecalc and Funcalc
Most recent first. These projects contributed to the development of
Corecalc and Funcalc either indirectly by trying out new ideas or
pointing out weaknesses, or directly by contributing code. Thanks!
Authors and credits
The implementation is Copyright 2006-2014 Peter Sestoft and others,
and is released under a MIT-style open
last update 2014-09-27