November 1976 - Vol. 19 No. 11

November 1976 issue cover image

Features

Research and Advances

Homilies for humble standards

At every standards meeting, in clear view on the table there should be a small plaque engraved: “Do it once, do it right, do it internationally.” The many contributions of Douglas Ross exemplify this directive. If, for example, you look at the ASCII standard, ANSI-X3.4-1968, you will find that D.T. Ross represented ACM on the ANSI X3 Committee at that time. This paper is part of an argument that well-founded standards go hand in hand with an effective systems methodology. When first submitted for refereeing, “Homilies for Humble Standards” was oriented toward Computer Aided Manufacturing (CAM) applications. As it is now published, the context is elevated to consider all applications. In a similar manner, we can broaden the scope to show that it is the concern of all ACM members. Manufacturing is the application of tools and processes on materials to create a product. Languages are our tools; algorithms and procedures are our processes; data is our material. The product is an enhancement of the power and span of control of the customer. I commend this paper for your reading as one of the relatively few in ACM publications which tell why ACM and its members should be “involved”; it discusses an unsolved problem, rather than a solution looking for a problem.
Research and Advances

Cobol under control

A sample set of Cobol programming standards is offered. These standards constrain code to be developed in a “structured” form for both data and control structures. They do not require syntax beyond the existing Cobol language and in fact utilize a typical limited subset of the 1974 ANS Cobol standard. These standards have proved extremely valuable in practice and have reduced the cost and time to produce and maintain large software systems that have been deployed in live multiple customer environments.
Research and Advances

The design and implementation of a table driven, interactive diagnostic programming system

CAPS is a highly interactive diagnostic compiler/interpreter that allows beginning programmers to prepare, debug, and execute fairly simple programs at a graphics display terminal. Complete syntax checking and most semantic analysis is performed as the program is entered and as it is subsequently edited. Analysis is performed character by character. The most remarkable feature of CAPS is its ability to automatically diagnose errors both at compile time and at run time. Errors are not automatically corrected. Instead, CAPS interacts with the student to help him find the cause of his error. Most components of CAPS are table driven, both to reduce the space needed for implementation and to increase the flexibility of the multilingual system. Over 500 students have used CAPS to learn Fortran, PL/I, or Cobol in conjunction with a computer assisted course on introductory computer science.
Research and Advances

Experiments in text file compression

A system for the compression of data files, viewed as strings of characters, is presented. The method is general, and applies equally well to English, to PL/I, or to digital data. The system consists of an encoder, an analysis program, and a decoder. Two algorithms for encoding a string differ slightly from earlier proposals. The analysis program attempts to find an optimal set of codes for representing substrings of the file. Four new algorithms for this operation are described and compared. Various parameters in the algorithms are optimized to obtain a high degree of compression for sample texts.
Research and Advances

The notions of consistency and predicate locks in a database system

In database systems, users access shared data under the assumption that the data satisfies certain consistency constraints. This paper defines the concepts of transaction, consistency and schedule and shows that consistency requires that a transaction cannot request new locks after releasing a lock. Then it is argued that a transaction needs to lock a logical rather than a physical subset of the database. These subsets may be specified by predicates. An implementation of predicate locks which satisfies the consistency condition is suggested.
Research and Advances

Optimal reorganization of distributed space disk files

In most database organizations, the cost of accessing the database will increase due to structural changes caused by updates and insertions. By reorganizing the database, the access costs can be reduced. A basic problem is to establish the proper tradeoff between performance, storage costs, and reorganization costs. This paper considers the optimum points at which to reorganize a database. A disk file organization which allows for distributed free space is described. A cost function describing the excess costs due to physical disorganization is defined, and this function is minimized to obtain the optimum reorganization points. Numerical examples based on the characteristics of existing disk storage devices are given.
Research and Advances

High-level binding with low-level linkers

An easy to implement scheme is described by which a compiler can enforce agreement between complex data types in separately compiled modules. The scheme is designed to work with any existing link editor or linking loader, no matter how deficient. Obscure runtime errors caused by inconsistent usages are forestalled by static errors detected at linking time.

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