Do Programmers Prefer Predictable Expressions in Code?

Cognitive Science 44 (12):e12921 (2020)
  Copy   BIBTEX

Abstract

Source code is a form of human communication, albeit one where the information shared between the programmers reading and writing the code is constrained by the requirement that the code executes correctly. Programming languages are more syntactically constrained than natural languages, but they are also very expressive, allowing a great many different ways to express even very simple computations. Still, code written by developers is highly predictable, and many programming tools have taken advantage of this phenomenon, relying on language model surprisal as a guiding mechanism. While surprisal has been validated as a measure of cognitive load in natural language, its relation to human cognitive processes in code is still poorly understood. In this paper, we explore the relationship between surprisal and programmer preference at a small granularity—do programmers prefer more predictable expressions in code? Using meaning‐preserving transformations, we produce equivalent alternatives to developer‐written code expressions and run a corpus study on Java and Python projects. In general, language models rate the code expressions developers choose to write as more predictable than these transformed alternatives. Then, we perform two human subject studies asking participants to choose between two equivalent snippets of Java code with different surprisal scores (one original and transformed). We find that programmers do prefer more predictable variants, and that stronger language models like the transformer align more often and more consistently with these preferences.

Links

PhilArchive



    Upload a copy of this work     Papers currently archived: 92,953

External links

Setup an account with your affiliations in order to access resources via your University's proxy server

Through your library

Similar books and articles

The Grammar of Code Switching.Marcus Kracht & Udo Klein - 2014 - Journal of Logic, Language and Information 23 (3):313-329.

Analytics

Added to PP
2020-12-13

Downloads
12 (#1,113,154)

6 months
4 (#862,849)

Historical graph of downloads
How can I increase my downloads?

Author's Profile

Emily Gerrett-Morgan
Bournemouth University

Citations of this work

No citations found.

Add more citations