Hostname: page-component-848d4c4894-p2v8j Total loading time: 0.001 Render date: 2024-05-28T08:34:41.543Z Has data issue: false hasContentIssue false

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

Published online by Cambridge University Press:  21 August 2020

Massachusetts Institute of Technology, (e-mail:
University of California Irvine, (e-mail:
Microsoft Research and University of Edinburgh, (e-mail:
Microsoft Research, (e-mail:
Microsoft Research and University of Cambridge, (e-mail:
Rights & Permissions [Opens in a new window]


Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

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.

Research Article
© The Author(s), 2020. Published by Cambridge University Press



Most of the contribution of these authors was made while they were interning at Microsoft Research.


Ambler, A. (1987) Forms: Expanding the visualness of sheet languages. In 1987 Workshop on Visual Languages. Tryck-Center Linköping, pp. 105117.Google Scholar
Blackwell, A. F. (2002) First steps in programming: A rationale for attention investment models. In IEEE 2002 Symposia on Human Centric Computing Languages and Environments, 2002. Proceedings. IEEE, pp. 210.CrossRefGoogle Scholar
Blackwell, A. F., Burnett, M. M. & Jones, S. P. (2004) Champagne prototyping: A research technique for early evaluation of complex end-user programming systems. In 2004 IEEE Symposium on Visual Languages and Human Centric Computing. IEEE, pp. 4754.CrossRefGoogle Scholar
Bock, A. A., Bøgholm, T., Sestoft, P., Thomsen, B. & Thomsen, L. L. (2020) On the semantics for spreadsheets with sheet-defined functions. J. Comput. Lang. 57.Google Scholar
Bostrom, R. P., Olfman, L. & Sein, M. K. (1990) The importance of learning style in end-user training. MIS Quart. 14(1), 101.CrossRefGoogle Scholar
Caine, K. (2016) Local standards for sample size at CHI. In Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems. ACM, pp. 981992.CrossRefGoogle Scholar
Erwig, M., Abraham, R., Kollmansberger, S. & Cooperstein, I. (2006) Gencel: A program generator for correct spreadsheets. J. Funct. Program. 16(3), 293325.CrossRefGoogle Scholar
Field, A. (2013) Discovering Statistics Using IBM SPSS Statistics, 4th ed. Sage Publications Ltd.Google Scholar
Green, T. R. G. & Petre, M. (1996) Usability analysis of visual programming environments: A ‘cognitive dimensions’ framework. J. Vis. Lang. Comput. 7(2), 131174.CrossRefGoogle Scholar
Gulwani, S., Polozov, O. & Singh, R. (2017) Program synthesis. Foundat. Trends Program. Lang. 4(1–2), 1119.CrossRefGoogle Scholar
Hart, S. G. & Staveland, L. E. (1988) Development of NASA-TLX (Task Load Index): Results of empirical and theoretical research. Hum. Mental Workload 1(3), 139183.CrossRefGoogle Scholar
Jansen, B. (2015) Enron versus euses: A comparison of two spreadsheet corpora. arXiv preprint arXiv:1503.04055.Google Scholar
McCutchen, M., Itzhaky, S. & Jackson, D. (2016) Object Spreadsheets: A new computational model for end-user development of data-centric web applications. In Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2016, New York, NY, USA: ACM, pp. 112127.CrossRefGoogle Scholar
Mendes, J. & Saraiva, J. (2017) Tabula: A language to model spreadsheet tables. CoRR, abs/1707.02833.Google Scholar
Mitchell, M. L. & Jolley, J. M. (2012) Research Design Explained. Cengage Learning.Google Scholar
Mokhov, A., Mitchell, N. & Peyton Jones, S. (2018) Build systems à la carte. PACMPL 2(ICFP), 79:179:29.Google Scholar
Paine, J. (2008) Ensuring spreadsheet integrity with model master. arXiv preprint arXiv:0801.3690.Google Scholar
Pandita, R., Parnin, C., Hermans, F. & Murphy-Hill, E. R. (2018) No half-measures: A study of manual and tool-assisted end-user programming tasks in Excel. In VL/HCC. IEEE Computer Society, pp. 95103.Google Scholar
Peyton Jones, S., Blackwell, A. & Burnett, M. (2003) A user-centred approach to functions in Excel. In Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, ICFP’03. New York, NY, USA: ACM, pp. 165176.CrossRefGoogle Scholar
Sarkar, A., Gordon, A. D., Peyton Jones, S. & Toronto, N. (2018) Calculation view: Multiple-representation editing in spreadsheets. In VL/HCC. IEEE Computer Society, pp. 8593.Google Scholar
Sestoft, P. (2014) Spreadsheet Implementation Technology: Basics and Extensions. MIT.CrossRefGoogle Scholar
Sestoft, P. & Sørensen, J. Z. (2013) Sheet-defined functions: Implementation and initial evaluation. In International Symposium on End User Development. Springer, pp. 88103.CrossRefGoogle Scholar
Supplementary material: File

McCutchen et al supplementary material

McCutchen et al supplementary material

Download McCutchen et al supplementary material(File)
File 27.1 KB
Submit a response


No Discussions have been published for this article.