May 1979 - Vol. 22 No. 5

May 1979 issue cover image

Features

Research and Advances

Social processes and proofs of theorems and programs

It is argued that formal verifications of programs, no matter how obtained, will not play the same key role in the development of computer science and software engineering as proofs do in mathematics. Furthermore the absence of continuity, the inevitability of change, and the complexity of specification of significantly many real programs make the formal verification process difficult to justify and manage. It is felt that ease of formal verification should not dominate program language design.
Research and Advances

An improved algorithm for decentralized extrema-finding in circular configurations of processes

This note presents an improvement to LeLann's algorithm for finding the largest (or smallest) of a set of uniquely numbered processes arranged in a circle, in which no central controller exists and the number of processes is not known a priori. This decentralized algorithm uses a technique of selective message extinction in order to achieve an average number of message passes of order (n log n) rather than O(n2).
Research and Advances

Consumer difficulties with computerized transactions: an empirical investigation

The prevalence with which errors may be encountered by the end targets of a computerized process is assessed. How many and what type of errors occur? How easily are they corrected? What is the reaction of consumers to errors—to a failure to correct them? What can be learned by designers of large management packages from such data? Results show that with the present state of the art, approximately 40 percent of individuals (or households) having average contacts with different types of accounts experience one or more errors per year. Eighty percent relate to billing. Attempts to correct errors often turned out to be difficult and not always successful. There appears to be some conflict between computer-using organizations and their public. Also the role of poor management packages including poor software is indicated. While most management systems may be adequate, results of the survey raise concerns about the timeless and the number of designs of very large linked program packages (as EFT for instance).
Research and Advances

Reasoning about arrays

A variety of concepts, laws, and notations are presented which facilitate reasoning about arrays. The basic concepts include intervals and their partitions, functional restriction, images, pointwise extension of relations, ordering, single-point variation of functions, various equivalence relations for array values, and concatenation. The effectiveness of these ideas is illustrated by informal descriptions of algorithms for binary search and merging, and by a short formal proof.
Research and Advances

A model for and discussion of multi-interpreter systems

A multi-interpreter system is a system in which programs execute by virtue of being interpreted by other programs, which themselves may either be interpreted (i.e. nested interpreters) or run directly on the host machine. The model reveals the anatomy of interpreters and how these differ from procedures, and exhibits links to protection domains and multiprocessor architectures.
Opinion

ACM forum

The article [1] by Matthew Geller presents a proposed method for establishing the correctness of a class of programs. Geller's abstract reads in part, “This paper introduces a technique whereby test data can be used in proving program correctness. In addition to simplifying the process of proving correctness, this method simplifies the process of providing accurate specification for a program.” These are strong claims, not justified by the article that follows.

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