acm-header
Sign In

Communications of the ACM

Table of Contents


ACM president's letter: once more, with feeling


Experimental investigations of the utility of detailed flowcharts in programming

This paper describes previous research on flowcharts and a series of controlled experiments to test the utility of detailed flowcharts as an aid to program composition, comprehension, debugging, and modification. No statistically …

Two views of data abstraction


The system for business automation (SBA): programming language

The system for business automation (SBA) is a system within which application experts—nonprogrammers—can describe and execute their applications on a computer. The user of SBA views his application as manipulation of information …

Abstract data types and the development of data structures

Abstract data types can play a significant role in the development of software that is reliable, efficient, and flexible. This paper presents and discusses the application of an algebraic technique for the specification of abstract …

Database abstractions: aggregation

Aggregation is introduced as an abstraction which is important in conceptualizing the real world. Aggregation transforms a relationship between objects into a higher-level object. A new data type, called aggregate, is developed …

Some ideas on data types in high-level languages

A number of issues are explored concerning the notion that a data type is a set of values together with a set of primitive operations on those values. Among these are the need for a notation for iterating over the elements of …

Buddy systems

Two algorithms are presented for implementing any of a class of buddy systems for dynamic storage allocation. Each buddy system corresponds to a set of recurrence relations which relate the block sizes provided to each other. …

A bounded storage algorithm for copying cyclic structures

A new algorithm is presented which copies cyclic list structures using bounded workspace and linear time. Unlike a previous similar algorithm, this one makes no assumptions about the storage allocation system in use and uses  …

Notes on recursion elimination

Various methods of recursion elimination are applied to the schematic recursive procedure: proc S(x); px then N(x); Sx); S(gx); M(x) fi. Procedures with this general form arise in connection with tree traversal and sorting  …

Functions realizable with word-parallel logical and two's-complement addition instructions


ACM forum


Production and employment of Ph.D.'s in computer science—1976

Statistics are presented on the production and employment of Ph.D.'s in computer science for the calendar year 1975-76. Data include profiles of graduate students and of faculty at 60 Ph.D.-producing departments as well as a  …