Copenhagen Programming Language Seminar

Fast sheet-defined functions in spreadsheets

Prof. Peter Sestoft
IT University of Copenhagen

Monday 1 December 2008, 13:00-14:00
The IT University, Rued Langgaards Vej 7, DK-2300 Room 2A.12


Spreadsheets appeal to millions of users because they are concrete, declarative and non-iterative. However, the absence of abstraction facilities lead to models that are unwieldy, slow, and difficult to maintain. Our goal is to permit users to define new functions within the familiar spreadsheet, in a manner that improves modularity as well as speed.

We present a prototype spreadsheet implementation that achieves these goals, and explain the technologies used. Type analysis and continuation-based compilation are used to generate .NET bytecode from sheet-defined functions at runtime. Thanks to the platform's just-in-time compiler the implementation is fast yet architecture independent.

We give several examples of useful functions definable this way, including functions that use tabulation for efficiency. We show that higher-order sheet-defined functions have natural uses. In particular, Excel's built-in numerical equation solver GOAL.SEEK can be implemented as a higher-order user-defined function in our framework.

This is work in progress. In future work, we expect to support recursive sheet-defined functions, matrix values, sheet-defined functions with a carefully limited form of state, and compilation for multicore architectures.

Scientific host:Lars Birkedal Administrative host: Annette Enggaard. All are welcome.
The Copenhagen Programming Language Seminar (COPLAS) is a collaboration between DIKU, ITU, KVL and RUC.
COPLAS is sponsored by the FIRST Graduate School.
To receive information about COPLAS talks by email, send a message to prog-lang-request@mail.it-c.dk with the word 'subscribe' as subject or in the body.

For more information about COPLAS, see http://www.coplas.org