What a Software Engineer Needs to Know: I. Program Vocabulary
December 1989 • Technical Report
In this 1989 report, the authors examine the programming language vocabulary of the programmer by gathering statistics on large bodies of code in three languages.
Software Engineering Institute
CMU/SEI Report Number
Software development, like any complex task, requires a wide variety of knowledge and skills. We examine one particular kind of knowledge, the programming language vocabulary of the programmer, by gathering statistics on large bodies of code in three languages. This data shows that most of the identifiers in programs are either uses of built-in or standard library definitions or highly idiomatic uses of local variables. We interpret this result in light of general results on expertise and language acquisition. We conclude that tools to support the vocabulary component of software development are wanting, and this part of an engineer's education is at best haphazard, and we recommend ways to improve the situation.