search menu icon-carat-right cmu-wordmark

What a Software Engineer Needs to Know: I. Program Vocabulary

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.
Publisher

Software Engineering Institute

CMU/SEI Report Number
CMU/SEI-89-TR-030

Abstract

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.

Cite This Technical Report

Shaw, M., Giuse, D., & Reddy, R. (1989, December 1). What a Software Engineer Needs to Know: I. Program Vocabulary. (Technical Report CMU/SEI-89-TR-030). Retrieved April 18, 2024, from https://insights.sei.cmu.edu/library/what-a-software-engineer-needs-to-know-i-program-vocabulary/.

@techreport{shaw_1989,
author={Shaw, Mary and Giuse, Dario and Reddy, Raj},
title={What a Software Engineer Needs to Know: I. Program Vocabulary},
month={Dec},
year={1989},
number={CMU/SEI-89-TR-030},
howpublished={Carnegie Mellon University, Software Engineering Institute's Digital Library},
url={https://insights.sei.cmu.edu/library/what-a-software-engineer-needs-to-know-i-program-vocabulary/},
note={Accessed: 2024-Apr-18}
}

Shaw, Mary, Dario Giuse, and Raj Reddy. "What a Software Engineer Needs to Know: I. Program Vocabulary." (CMU/SEI-89-TR-030). Carnegie Mellon University, Software Engineering Institute's Digital Library. Software Engineering Institute, December 1, 1989. https://insights.sei.cmu.edu/library/what-a-software-engineer-needs-to-know-i-program-vocabulary/.

M. Shaw, D. Giuse, and R. Reddy, "What a Software Engineer Needs to Know: I. Program Vocabulary," Carnegie Mellon University, Software Engineering Institute's Digital Library. Software Engineering Institute, Technical Report CMU/SEI-89-TR-030, 1-Dec-1989 [Online]. Available: https://insights.sei.cmu.edu/library/what-a-software-engineer-needs-to-know-i-program-vocabulary/. [Accessed: 18-Apr-2024].

Shaw, Mary, Dario Giuse, and Raj Reddy. "What a Software Engineer Needs to Know: I. Program Vocabulary." (Technical Report CMU/SEI-89-TR-030). Carnegie Mellon University, Software Engineering Institute's Digital Library, Software Engineering Institute, 1 Dec. 1989. https://insights.sei.cmu.edu/library/what-a-software-engineer-needs-to-know-i-program-vocabulary/. Accessed 18 Apr. 2024.

Shaw, Mary; Giuse, Dario; & Reddy, Raj. What a Software Engineer Needs to Know: I. Program Vocabulary. CMU/SEI-89-TR-030. Software Engineering Institute. 1989. https://insights.sei.cmu.edu/library/what-a-software-engineer-needs-to-know-i-program-vocabulary/