acm-header
Sign In

Communications of the ACM

Table of Contents


ACM president's letter: once more, with feeling


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  …

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