SEFeb 5, 2015

On the Lexical Distinguishability of Source Code

arXiv:1502.01410v25 citations
AI Analysis

This provides quantitative evidence for keyword-based programming, offering insight into alternative programming models for software developers.

The paper tackles the problem of identifying essential parts of source code by studying a large corpus of Java methods to separate 'wheat' (critical elements) from 'chaff' (non-essential ones), confirming that functions contain minimal distinguishing subsets.

Natural language is robust against noise. The meaning of many sentences survives the loss of words, sometimes many of them. Some words in a sentence, however, cannot be lost without changing the meaning of the sentence. We call these words "wheat" and the rest "chaff". The word "not" in the sentence "I do not like rain" is wheat and "do" is chaff. For human understanding of the purpose and behavior of source code, we hypothesize that the same holds. To quantify the extent to which we can separate code into "wheat" and "chaff", we study a large (100M LOC), diverse corpus of real-world projects in Java. Since methods represent natural, likely distinct units of code, we use the ~9M Java methods in the corpus to approximate a universe of "sentences." We extract their wheat by computing the function's minimal distinguishing subset (Minset). Our results confirm that functions contain work offers the first quantitative evidence for recent promising work on keyword-based programming and insight into how to develop a powerful, alternative programming model.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes