  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.
