Sign In

Communications of the ACM

Table of Contents


President's letter

ACM forum

Programming pearls: the Furbelow memorandum

Literate programming

Generality in artificial intelligence

My 1971 Turing Award Lecture was entitled "Generality in Artificial Intelligence." The topic turned out to have been overambitious in that I discovered I was unable to put my thoughts on the subject in a satisfactory written  …

Issues in the pragmatics of qualitative modeling: lessons learned from a xerographics project

The photocopier is one of the most complex machines because xerography involves many types of physical phenomena. ARIA is a qualitative simulation of xerography that is intended to teach technicians the reasons behind some of …

Variations on UNIX for parallel-processing computers

Porting a familiar UNIX environment to today's parallel-processing computers is challenging, but options abound.

The duality of database structures and design techniques

Attempting to pair database structures with database design techniques that seem incompatible yields some fascinating concepts about the world of database, including foreign keys and multiple relationships.

Economies of scale in computing: Grosch's law revisited

Does Grosch's law apply in the 1980s? A look at the price and performance of computer systems concludes that there are no economies of scale in computing. Computer technology is characterized by constant returns to scale, a fact …

Designing large real-time systems with Ada: Corrigenda

Self-organizing search lists using probabilistic back-pointers

A class of algorithms is presented for maintaining self-organizing sequential search lists, where the only permutation applied is to move the accessed record of each search some distance towards the front of the list. During  …