i-nth logo

Authors

Jacome Cunha, Mihai Dan, Martin Erwig, Danila Fedorin, & Alex Grejuc

Abstract

Based on the concept of explanation sheets, we present an approach to make spreadsheets easier to understand and thus easier to use and maintain.

We identify the notion of explanation soundness and show that explanation sheets which conform to simple rules of formula coverage provide sound explanations. We also present a practical evaluation of explanation sheets based on samples drawn from widely used spreadsheet corpora and based on a small user study.

In addition to supporting spreadsheet understanding and maintenance, our work on explanation sheets has also uncovered several general principles of explanation languages that can help guide the design of explanations for other programming and domain-specific languages.

Sample

Example explanation sheet
Example explanation sheet

Applying label abstraction to the example payroll spreadsheet results in the spreadsheet shown in the figure.

Label abstraction increases readability by giving context to computation, especially as formula complexity increases.

We have identified a number of general principles that we believe should guide the development of explanations:

  • Structure Preservation. An explanation language should retain key subject language structures.
  • Abstraction. An explanation language should aim at high-level descriptions that abstract from details of the subject language.
  • Partiality. An explanation language should support partial explanations.
  • Compositionality. An explanation language should support constructing bigger explanations from smaller ones.

Publication

2018, 17th International Conference on Generative Programming (GPCE): Concepts & Experiences, November, pages 161-167

Full article

Explaining spreadsheets with spreadsheets