Software Engineering Institute | Carnegie Mellon University
Software Engineering Institute | Carnegie Mellon University

Digital Library

Javascript is currently disabled for your browser. For an optimal search experience, please enable javascript.

Advanced Search

Basic Search

Content Type

Topics

Publication Date

Technical Report

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

  • December 1989
  • By Mary Shaw, Dario Giuse, Raj Reddy
  • 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 Report

SEI

Shaw, Mary; Giuse, Dario; & Reddy, Raj. What a Software Engineer Needs to Know: I. Program Vocabulary. CMU/SEI-89-TR-030 . Software Engineering Institute, Carnegie Mellon University. 1989. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11019

IEEE

Shaw. Mary, Giuse. Dario, and Reddy. Raj, "What a Software Engineer Needs to Know: I. Program Vocabulary," Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, Technical Report CMU/SEI-89-TR-030 , 1989. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11019

APA

Shaw, Mary., Giuse, Dario., & Reddy, Raj. (1989). What a Software Engineer Needs to Know: I. Program Vocabulary (CMU/SEI-89-TR-030 ). Retrieved September 20, 2017, from the Software Engineering Institute, Carnegie Mellon University website: http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11019

CHI

Mary Shaw, Dario Giuse, & Raj Reddy. What a Software Engineer Needs to Know: I. Program Vocabulary (CMU/SEI-89-TR-030 ). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1989. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11019

MLA

Shaw, Mary., Giuse, Dario., & Reddy, Raj. 1989. What a Software Engineer Needs to Know: I. Program Vocabulary (Technical Report CMU/SEI-89-TR-030 ). Pittsburgh: Software Engineering Institute, Carnegie Mellon University. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11019

BibTex

@techreport{ShawWhata1989,
title={What a Software Engineer Needs to Know: I. Program Vocabulary},
author={Mary Shaw and Dario Giuse and Raj Reddy},
year={1989},
number={CMU/SEI-89-TR-030 },
institution={Software Engineering Institute, Carnegie Mellon University},
address={Pittsburgh, PA},
url={http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11019} }