i-nth logo

Authors

Martin Erwig, Robin Abraham, Steve Kollmansberger, & Irene Cooperstein

Abstract

A huge discrepancy between theory and practice exists in one popular application area of functional programming – spreadsheets. Although spreadsheets are the most frequently used (functional) programs, they fall short of the quality level that is expected of functional programs, which is evidenced by the fact that existing spreadsheets contain many errors, some of which have serious impacts.

We have developed a template specification language that allows the definition of spreadsheet templates that describe possible spreadsheet evolutions. This language is based on a table calculus that formally captures the process of creating and modifying spreadsheets. We have developed a type system for this calculus that can prevent type, reference, and omission errors from occurring in spreadsheets.

On the basis of the table calculus we have developed Gencel, a system for generating reliable spreadsheets. We have implemented a prototype version of Gencel as an extension of Excel.

Sample

Interface for loading Gencel specifications
Interface for loading Gencel specifications

The Gencel interface shows the user a listing of the available templates.

When the user clicks on any file name from the list on the left she is shown a preview and a description of the specification, which can be added manually as a comment to the templates.

Publication

2006, Journal of Functional Programming, Volume 16, Number 3, May, pages 293-325

Full article

Gencel: A program generator for correct spreadsheets