Elastic sheet-defined functions: Generalising spreadsheet functions to variable-size input arrays

Sheet-defined functions (SDFs) bring modularity and abstraction to the world of spreadsheets. Alas, end users naturally write SDFs that work over fixed-size arrays, which limits their reusability. To help end user programmers write more reusable SDFs, we describe a principled approach to generalising such functions to become elastic SDFs that work over inputs of arbitrary size. We prove that under natural, checkable conditions, our algorithm returns the principal generalisation of an input SDF. We describe a formal semantics and several efficient implementation strategies for elastic SDFs. A user study with spreadsheet users compares the human experience of programming with elastic SDFs to the alternative of relying on array-processing combinators. Our user study finds that the cognitive load of elastic SDFs is lower than for SDFs with map/reduce array combinators, the closest alternative solution.

[1]  Sumit Gulwani,et al.  Program Synthesis , 2017, Software Systems Safety.

[2]  Daniel Jackson,et al.  Object spreadsheets: a new computational model for end-user development of data-centric web applications , 2016, Onward!.

[3]  Alan F. Blackwell,et al.  End-User Developers - What Are They Like? , 2017, New Perspectives in End-User Development.

[4]  Peter Sestoft Spreadsheet Implementation Technology: Basics and Extensions , 2014 .

[5]  C. Cordell Green,et al.  What Is Program Synthesis? , 1985, J. Autom. Reason..

[6]  Simon L. Peyton Jones,et al.  Champagne Prototyping: A Research Technique for Early Evaluation of Complex End-User Programming Systems , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[7]  Martin Erwig,et al.  Gencel: a program generator for correct spreadsheets , 2006, J. Funct. Program..

[8]  Simon L. Peyton Jones,et al.  Calculation View: multiple-representation editing in spreadsheets , 2018, 2018 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[9]  Lone Leth Thomsen,et al.  On the semantics for spreadsheets with sheet-defined functions , 2020, J. Comput. Lang..

[10]  Jorge Mendes,et al.  Tabula: A Language to Model Spreadsheet Tables , 2017, ArXiv.

[11]  Laura Beckwith,et al.  On to the Real World: Gender and Self-Efficacy in Excel , 2007 .

[12]  Kelly Caine,et al.  Local Standards for Sample Size at CHI , 2016, CHI.

[13]  Andy P. Field,et al.  Discovering Statistics Using Ibm Spss Statistics , 2017 .

[14]  Bas Jansen Enron versus EUSES: A Comparison of Two Spreadsheet Corpora , 2015, SEMS@ICSE.

[15]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[16]  Lorne Olfman,et al.  The Importance of Learning Style in End-User Training , 1990, MIS Q..

[17]  S. Hart,et al.  Development of NASA-TLX (Task Load Index): Results of Empirical and Theoretical Research , 1988 .

[18]  Mark L. Mitchell,et al.  Research Design Explained , 1987 .

[19]  Simon L. Peyton Jones,et al.  A user-centred approach to functions in Excel , 2003, ICFP '03.

[20]  Jocelyn Paine Ensuring Spreadsheet Integrity with Model Master , 2008, ArXiv.

[21]  Alan F. Blackwell,et al.  First steps in programming: a rationale for attention investment models , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[22]  Emerson R. Murphy-Hill,et al.  No half-measures: A study of manual and tool-assisted end-user programming tasks in Excel , 2018, 2018 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[23]  Peter Sestoft,et al.  Sheet-Defined Functions: Implementation and Initial Evaluation , 2013, IS-EUD.

[24]  Simon L. Peyton Jones,et al.  Build systems à la carte , 2018, Proc. ACM Program. Lang..

[25]  Chittibabu Govindarajulu End users: who are they? , 2003, CACM.