May 1980 - Vol. 23 No. 5

May 1980 issue cover image

Features

Research and Advances

The structure of modular program

Choosing the right program structures can lead to better programs, says Joshua Turner. He advocates modular design to make large programs more manageable. Turner reviews the possible structural relationships between the modules of a program and generates a tentative morphology of program structure types. He concludes that, with some exceptions, the hypothetical pure tree structure is the best choice for most data processing applications.
Research and Advances

Conversion of decision tables to efficient sequential testing procedures

Sequential testing procedures for checking the rule-applicability of the decision tables encountered in practice are usually found to be minimum-path-length trees. On the basis of this observation, an algorithm is developed for converting decision tables to efficient decision trees. A criterion is defined for estimating the minimum expected cost of the tree in terms of rule probabilities and condition-testing costs and is utilized in arriving at the efficient decision tree. The algorithm is applicable to general limited-entry decision tables and can also be employed for manual coding.
Research and Advances

Hierarchical binary search

In hierarchical search the data structure holding the file keys is partitioned into substructures of the same type; these are searched consecutively until the queried key is found or the substructures are exhausted. The interest here is in the conditions under which the performance of a hierarchical organization of static files is superior to that of the nonhierarchical organization and in the construction of the hierarchy when these conditions are met. The performance criterion is the average number of comparisons in a successful search, where averaging extends over all keys and over all permutations of the key's access probabilities. General properties of hierarchical search are first derived, and attention is then focused on the hierarchical binary organization—the special case where each of the data substructures is a sorted array (or a balanced binary tree) and where the keys are accessed by binary search. It is shown that an advantageous two-stage hierarchy is always implementable when the keys' access density function &phgr;(i) is “steeper” than Zipf's density function &zgr;(i)—the steeper it is, the greater the advantage. A simple method for constructing the two-stage hierarchy is formulated, based on finding the intersection of &phgr;(i) and &zgr;(i). For the r-stage hierarchical organization, partitioning procedures are proposed which are based on the iterative application of the two-stage techniques.

Recent Issues

  1. November 2024 CACM cover
    November 2024 Vol. 67 No. 11
  2. October 2024 CACM cover
    October 2024 Vol. 67 No. 10
  3. September 2024 CACM cover
    September 2024 Vol. 67 No. 9
  4. August 2024 CACM cover
    August 2024 Vol. 67 No. 8