Title:  Fast sheet-defined functions in spreadsheets
Speaker:  Peter Sestoft (IT University of Copenhagen, Denmark)         www.itu.dk/~sestoft
Time: 8th December 2014, 10:00
Venue: Seminar Room (334), Level 3, Building 5, Institute of Software, CAS
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.