Skip to main content Accessibility help
×
Home
Hostname: page-component-cf9d5c678-j7tnp Total loading time: 0.234 Render date: 2021-07-29T00:17:38.998Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "metricsAbstractViews": false, "figures": true, "newCiteModal": false, "newCitedByModal": true, "newEcommerce": true, "newUsageEvents": true }

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

Published online by Cambridge University Press:  21 August 2020

MATT MCCUTCHEN
Affiliation:
Massachusetts Institute of Technology, (e-mail: matt@mattmccutchen.net)
JUDITH BORGHOUTS
Affiliation:
University of California Irvine, (e-mail: jborghou@uci.edu)
ANDREW D. GORDON
Affiliation:
Microsoft Research and University of Edinburgh, (e-mail: adg@microsoft.com)
SIMON PEYTON JONES
Affiliation:
Microsoft Research, (e-mail: simonpj@microsoft.com)
ADVAIT SARKAR
Affiliation:
Microsoft Research and University of Cambridge, (e-mail: advait@microsoft.com)

Abstract

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.

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

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Footnotes

1

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

References

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 KB
Submit a response

Discussions

No Discussions have been published for this article.
2
Cited by

Send article to Kindle

To send this article to your Kindle, first ensure no-reply@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle. Find out more about sending to your Kindle.

Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

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

Send article to Dropbox

To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Dropbox.

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

Send article to Google Drive

To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Google Drive.

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

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *