Sign In

Communications of the ACM

Table of Contents


President's letter


ACM forum

Reasoning with worlds and truth maintenance in a knowledge-based programming environment

In traditional knowledge-based system development environments, the fundamental representational building blocks are mechanisms such as frames, rules, and attached procedures. The KEE system has been extended to include both  …

Undebuggability and cognitive science

A resource-realistic perspective suggests some indispensable features for a computer program that approximates all human mentality. The mind's program would differ fundamentally more from familiar types of software. These features …

Relational database design using an object-oriented methodology

Of the many approaches to relational database design, the Object Modeling Technique (OMT) is particularly effective. A comprehensive explanation and two applications show the semantic improvement of OMT over other approaches. …

Cost/benefit analysis for incorporating human factors in the software lifecycle

New software engineering techniques and the necessity to improve the user interface in increasingly interactive software environments have led to a change in traditional software development methods. Methodologies for improvement …

Computing Poisson probabilities

We propose an algorithm to compute the set of individual (nonnegligible) Poisson probabilities, rigorously bound truncation error, and guarantee no overflow or underflow. Work and space requirements are modest, both proportional …

Dynamic hash tables

Linear hashing and spiral storage are two dynamic hashing schemes originally designed for external files. This paper shows how to adapt these two methods for hash tables stored in main memory. The necessary data structures and …