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

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. Keywords: Computer programming.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Aug 01, 1989
Accession Number
ADA219064

Entities

People

  • Dario Giuse
  • Mary Shaw
  • Raj Reddy

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Human Systems

DTIC Thesaurus Topics

  • Acquisition
  • Air Force
  • Computer Programming
  • Computer Science
  • Computers
  • Department Of Defense
  • Education
  • Engineering
  • Language
  • Lisp Programming Language
  • Natural Languages
  • Operating Systems
  • Programming Languages
  • Software Design
  • Software Development
  • Statistics
  • Students

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Computer Science.
  • Instructional Design and Training Evaluation.