DocumentCode
934494
Title
Structure of computer programs: A survey
Author
Holt, Richard C.
Author_Institution
University of Toronto, Toronto, Ont., Canada
Volume
63
Issue
6
fYear
1975
fDate
6/1/1975 12:00:00 AM
Firstpage
879
Lastpage
893
Abstract
A survey of reasons fog and methods of dividing large computer programs into parts is presented. The paper concentrates on over-all or external program structures (e.g., methods of sharing data among procedures) rather than on internal program structures, such as arrays, pointers, loops, and conditional statements. The paper classifies reasons for dividing programs as arising from 1) physical constraints such as limited memory space, and 2) human constraints such as division of programming responsibility. The principal tool fog organizing programs to meet human constraints is functional decomposition, i.e., dividing a program and its specifications according to (hopefully simple) functions of the program parts. Unfortunately, the various constraints which impose divisions upon a large program do not necessarily suggest the same program organisation. The central portion of the paper deals with mechanism for program compsition. These mechanisms are classified as 1) routines which are called by sequential process (a routine is any procedure-like software mechanism), 2) mechanisms for data sharing among routines (such as Fortran´s common data blocks and Algol´s scope rules), and 3) mechanisms for handling asynchronous interactions (such as requesting the scheduling of input/output operations). The paper also discusses techniques for folding programs to meet memory constraints (by overlaying, paging, and segmenting) and methods of linking separately compiled procedures.
Keywords
Algorithms; Central Processing Unit; Costs; Humans; Organizing; Page description languages; Performance analysis; Processor scheduling; Software engineering; Software maintenance;
fLanguage
English
Journal_Title
Proceedings of the IEEE
Publisher
ieee
ISSN
0018-9219
Type
jour
DOI
10.1109/PROC.1975.9853
Filename
1451783
Link To Document