[12-8]Fast Sheet-defined Functions in Spreadsheets
Date:2014-12-03
Title: Fast Sheet-defined Functions in Spreadsheets
Speaker: Peter Sestoft (IT University of Copenhagen, Denmark)
Time: 8th December 2014, 10:00
Venue: Seminar Room (334), Level 3, Building 5, Institute of Software, CAS
Abstract:
Spreadsheets appeal to millions of users because they are concrete, declarative and non-iterative. However, the absence of abstraction facilities leads to models that are unwieldy, slow, error-ridden and difficult to maintain. Our goal is to allow users to define new functions within the familiar spreadsheet paradigm, without resorting to external languages such as VBA in Excel, and with performance comparable to built-in functions. We present a prototype spreadsheet implementation called Funcalc that achieves these goals, based on the concept of sheet-defined function. Type analysis and continuation-based compilation are used to generate efficient .NET bytecode from such sheet-defined functions at runtime. Thanks to the platform's just-in-time compiler the implementation is fast. We give several examples of useful functions definable this way, and show that higher-order and recursive sheet-defined functions have natural uses. Since sheet-defined functions are declarative, they can be specialized (partially evaluated) quite easily. For the same reason, one can exploit the near-explicit parallelism of spreadsheet models. We outline future work with goal of enabling high-performance computing on multicore computers via our spreadsheet programming concept.
Biography:
Peter Sestoft is professor of Software Development and head of the Software and Systems Section at the IT University of Copenhagen and works mainly with programming language technology. He is co-developer of various open source software, including the Moscow ML implementation of Standard ML, the C5 Generic Collection Library for C# and CLI, and the Funcalc spreadsheet research prototype. He is a co-author, with Jones and Gomard, of the standard reference on partial evaluation (1993), and author of several other books, most recently Spreadsheet Implementation Technology (MIT Press, October 2014).