Small programs are those which are written and understood by one. person. Large software systems usually consist of many small programs. The complexity of a small program is a prediction of how difficult it would be for someone to understand the program. This complexity depends of three factors: (1) the size and interelationships of the program itself; (2) the size and interelationships of the internal model of the program's purpose held by the person trying to understand the program; and (3) the complexity of the mapping between the model and the program. A theory of small program complexity based on these three factors is presented. The theory leads to several testable predictions. Experiments are described which test these predictions and whose results could verify or destroy the theory. © 1982, ACM. All rights reserved.


Computer Science

International Standard Serial Number (ISSN)

1558-1160; 0362-1340

Document Type

Article - Journal

Document Version


File Type





© 2023 Association for Computing Machinery, All rights reserved.

Publication Date

03 Jan 1982