Advertisement

Research and Advances

Predicative programming Part I

Programs are given a new semantics with the merit that a specification written as a first-order predicate can be refined, step by step, to a program via the rules of Predicate Calculus. The semantics allows a free mixture of predicate and programming notations, and manipulation of programs.
Research and Advances

Some negative results concerning prime number generators

Programs attributed to Wirth and Misra for generating the prime numbers up to a specified limit are investigated. It is shown that Wirth's program is incorrect according to three increasingly weak criteria, and a composite number is exhibited that the program accepts as prime. This is the smallest known counterexample, and could not have been found by the usual method of program testing—the program would run for trillions of years on the fastest computer before reaching it! Closely related counterexamples are given to a conjecture of Misra concerning his program. An appendix gives a particularly simple algorithmic proof of the Chinese remainder theorem.
Research and Advances

Why students reject engineering teaching careers

Many of the country's brightest engineering students have been passing up graduate school for the challenge and high salaries of industry. This is drying up the supply of new Ph.D.s interested in teaching at a time when U.S. engineering schools are struggling to cope with swelling enrollments and a severe faculty shortage.
Research and Advances

Congress tackless computer abuse

Congress has been taking an active interest in protecting information stored in computers. Congressional investigations and media reports have highlighted the vulnerability of computer systems to abuse and mis-use. Recent accounts of “system hackers” describe young students and others who gain illegal access to systems, thereby obtaining information and services, as well as disrupting systems.
Research and Advances

Software errors and complexity: an empirical investigation0

An analysis of the distributions and relationships derived from the change data collected during development of a medium-scale software project produces some surprising insights into the factors influencing software development. Among these are the tradeoffs between modifying an existing module as opposed to creating a new one, and the relationship between module size and error proneness.
Research and Advances

Organizational power and the information services department

A theory of intraorganizational power is discussed and applied to the information services department. The results of a study of the power of five departments in 40 manufacturing plants is presented. Hypotheses about the levels of power of information processing are not supported by the findings; however, the power theory in general does receive support.The information-services department is perceived as having low levels of power and influence in the organization: Reasons for this unexpected finding are discussed. The paper suggests several explanations for the results and possible problems in the organization. Recommendations to senior management and the information-services department are offered.
Research and Advances

Reducing the retrieval time of hashing method by using predictors

Many methods for resolving collisions in hashing techniques have been proposed. They are classified into two main categories: open addressing and chaining. In this paper, other methods are presented that are intermediate between the two categories. The basic idea of our methods is the use of one or more predictors reserved per cell instead of a link field as in the chaining method. The predictors are used to maintain loose synonym chains. After describing the methods, the efficiencies are estimated theoretically and verified experimentally. In comparison with the chaining method, we prove that our methods significantly reduce the average number of probes necessary to retrieve a key without expending extra space.
Research and Advances

A user-friendly software environment for the novice programmer

SOLO, a nonnumerical programming language, was developed at The Open University in the U.K. to support a course on Cognitive Psychology. It was designed to acquaint students as painlessly as possible with the computing fundamentals necessary both to grasp AI principles as applied in Cognitive Psychology and to actually initiate fairly sophisticated exercises on their own. The language has been used successfully by more than 2500 social science students.
Research and Advances

Balancing binary trees by internal path reduction

We present an algorithm for balancing binary search trees. In this algorithm single or double rotations are performed when they decrease the internal path of the total tree. It is shown that the worst internal path on such trees is never more than 5 percent worse than optimal and that its height is never more than 44 percent taller than optimal. This compares favorably with the AVL trees whose internal path may be 28 percent worse than optimal and the same 44 percent worst height, and with the weight-balanced trees which may be 15 and 100 percent worse than optimal, respectively. On the other hand, the number of rotations during a single insertion/deletion can be O(n), although the amortized worst-case number of rotations is O(log n) per update.
Research and Advances

A survey of attitudes toward computers

What do people really think about computers and their impact? In 1970, a study of people's attitudes in North America showed computers to be regarded as either “beneficial tools of mankind” or as “awesome thinking machines.” A recent survey taken in Australia and reported in this article, though, suggests there may have been a change in attitudes over the past decade. The Australians expressed much concern over the computer's possible disemploying and dehumanizing effects—as well as disquiet over the control computers could exercise over their lives. If these attitudes are typical beyond the shores of Australia, they could create a barrier to the widespread acceptance and application of computers around the world.
Research and Advances

Transporting a portable operating system: UNIX to an IBM minicomputer

The “portable” UNIX operating system was transported to an IBM Series/1 minicomputer. The process of transporting is described with emphasis on (1) adapting to the target machine architecture; (2) the selection of the approach taken to transporting; (3) a description of the problems encountered; (4) the degree of portability of the UNIX system; and (5) a summary of the portability lessons learned.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More