• 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