  Identifiers make up a majority of the text in code. They are one of the most
basic mediums through which developers describe the code they create and
understand the code that others create. Therefore, understanding the patterns
latent in identifier naming practices and how accurately we are able to
automatically model these patterns is vital if researchers are to support
developers and automated analysis approaches in comprehending and creating
identifiers correctly and optimally. This paper investigates identifiers by
studying sequences of part-of-speech annotations, referred to as grammar
patterns. This work advances our understanding of these patterns and our
ability to model them by 1) establishing common naming patterns in different
types of identifiers, such as class and attribute names; 2) analyzing how
different patterns influence comprehension; and 3) studying the accuracy of
state-of-the-art techniques for part-of-speech annotations, which are vital in
automatically modeling identifier naming patterns, in order to establish their
limits and paths toward improvement. To do this, we manually annotate a dataset
of 1,335 identifiers from 20 open-source systems and use this dataset to study
naming patterns, semantics, and tagger accuracy.
