Sign In

Communications of the ACM

Table of Contents


ACM president's letter: computer architecture: some old ideas that haven't quite made it yet


A user-friendly algorithm

The interface between a person and a computer can be looked at from either side. Programmers tend to view it from the inside; they consider it their job to defend the machine against errors made by its users. From the outside …

The Cornell program synthesizer: a syntax-directed programming environment

Programs are not text; they are hierarchical compositions of computational structures and should be edited, executed, and debugged in an environment that consistently acknowledges and reinforces this viewpoint. The Cornell Program …

An on-line algorithm for fitting straight lines between data ranges

Applications often require fitting straight lines to data that is input incrementally. The case where a data range [&agr;k, &ohgr;k] is received at each tk, t1 < t2 < … tn, is considered. An algorithm is presented that finds all the straight …

Comparison of synonym handling and bucket organization methods

A theoretical description of the access times required in open addressing and external chaining is given. Values are calculated for different record and bucket sizes and load factors, and the corresponding values for the two  …

On sharing secrets and Reed-Solomon codes

Shamir's scheme for sharing secrets is closely related to Reed-Solomon coding schemes. Decoding algorithms for Reed-Solomon codes provide extensions and generalizations of Shamir's method.

Comments on price/performance patterns of U. S. computer systems

Several errors are noted in the formulation of econometric models describing computer price/performance patterns. An alternative model is presented which shows the effects of technological advances and computer size on price  …

Automatic extension of an ATN knowledge base

A computer program is described that acquires much of its knowledge from conversations among operators on Morse code radio networks. The system consists of a learning component and a language understander. The learning component …

An abstract programming model

An abstract model of a processor is presented informally. The model can be used by itself to abstractly describe algorithms, or with a direct implementation to write and run programs, or as the foundation of a programming language …

Shuffle languages, Petri nets, and context-sensitive grammars

Flow expressions have been proposed as an extension of the regular expressions designed to model concurrency. We examine a simplification of these flow expressions which we call shuffle expressions. We introduce two types of  …

Technical correspondence: on price/performance in U.S. computer systems


Technical correspondence: on price/performance in U.S. computer systems. author's reply


Technical correspondence: measuring the level of computerization in a country


Technical corrections: Onspelling correction and beyond


Technical correspondence: on spelling correction and beyond. author's repsonse


ACM forum