Grateful acknowledgment is made for permission from the following:
Illustration of the macaque visual cortex from Distributed Hierarchical Processing in Primate Cerebral Cortex, Cerebral Cortex 1: 147, courtesy of Oxford University Press.
Pablo Picassos Bernard Picasso with His Mother (1959); 1998 Estate of Pablo Picasso/Artist Rights Society (ARS), New York.
Photo of the Tinker Toy computer courtesy of The Computer Museum.
The Science Masters Series is a global publishing venture consisting of original science books written by leading scientists and published by a worldwide team of twenty-six publishers assembled by John Brockman. The series was conceived by Anthony Cheetham of Orion Publishers and John Brockman of Brockman, Inc., a New York literary agency, and developed in coordination with Basic Books.
The Science Masters name and marks are owned by and licensed to the publisher by Brockman Inc.
Copyright 1998 by W. D. Hillis.
Published by Basic Books,
A Member of the Perseus Books Group
All rights reserved. No part of this book may be used or reproduced in any manner whatsoever without written permission except in the case of brief quotations embodied in critical articles and reviews. For information address Basic Books, 387 Park Avenue South, New York, NY 10016-8810.
FIRST PAPERBACK EDITION 1999
Illustrations by Patricia Isaacs, Parrot Graphics
Library of Congress Cataloging-in-Publication Data
Hillis, W. Daniel.
The pattern on the stone : the simple ideas that make computers work / W. Daniel Hillis.1st ed.
p. cm.(Science masters)
Includes index.
ISBN-13: 978-0-465-06687-2
1. Computers. I. Title. II. Series: Science masters series.
QA76.5.H4918 1998
CONTENTS
I etch a pattern of geometric shapes onto a stone. To the uninitiated, the shapes look mysterious and complex, but I know that when arranged correctly they will give the stone a special power, enabling it to respond to incantations in a language no human being has ever spoken. I will ask the stone questions in this language, and it will answer by showing me a vision: a world created by my spell, a world imagined within the pattern on the stone.
A few hundred years ago in my native New England, an accurate description of my occupation would have gotten me burned at the stake. Yet my work involves no witchcraft; I design and program computers. The stone is a wafer of silicon, and the incantations are software. The patterns etched on the chip and the programs that instruct the computer may look complicated and mysterious, but they are generated according to a few basic principles that are easily explained.
Computers are the most complex objects we human beings have ever created, but in a fundamental sense they are remarkably simple. Working with teams of only a few dozen people, I have designed and built computers containing billions of active parts. The wiring diagram of one of these machines, if it were ever to be drawn, would fill all the books in a good-sized public library, and nobody would have the patience to scan the whole of it. Fortunately, such a diagram is unnecessary, because of the regularity of a computers design. Computers are built up in a hierarchy of parts, with each part repeated many times over. All you need to understand a computer is an understanding of this hierarchy.
Another principle that makes computers easy to understand is the nature of the interactions among the parts. These interactions are simple and well-defined. They are also usually one-directional, so that the actions of the computer can be sorted neatly into causes and effects, making the inner workings of a computer more comprehensible than, say, the inner workings of an automobile engine or a radio. A computer has a lot more parts than a car or a radio does, but its much simpler in the way the parts work together. A computer is not dependent so much on technology as on ideas.
Moreover, the ideas have almost nothing to do with the electronics out of which computers are built. Present-day computers are built of transistors and wires, but they could just as well be built, according to the same principles, from valves and water pipes, or from sticks and strings. The principles are the essence of what makes a computer compute. One of the most remarkable things about computers is that their essential nature transcends technology. That nature is what this book is about.
This is the book I wish I had read when I first started learning about the field of computing. Unlike most books on computerswhich are either about how to use them or about the technology out of which theyre built (ROM, RAM, disk drives, and so on)this is a book about ideas. It explains, or at least introduces, most of the important ideas in the field of computer science, including Boolean logic, finite-state machines, programming languages, compilers and interpreters, Turing universality, information theory, algorithms and algorithmic complexity, heuristics, uncomutable functions, parallel computing, quantum computing, neural networks, machine learning, and self-organizing systems. Anyone interested enough in computers to be reading this book will probably have encountered many of these ideas before, but outside of a formal education in computer science there are few opportunities to see how they all fit together. This book makes the connectionsall the way from simple physical processes like the closing of a switch to the learning and adaptation exhibited by self-organizing parallel computers.
A few general themes underlie an exposition of the nature of computers: the first is the principle of functional abstraction, which leads to the aforementioned hierarchy of causes and effects. The structure of the computer is an example of the application of this principleover and over again, at many levels. Computers are understandable because you can focus on what is happening at one level of the hierarchy without worrying about the details of what goes on at the lower levels. Functional abstraction is what decouples the ideas from the technology.
The second unifying theme is the principle of the universal computerthe idea that there is really only one kind of computer, or, more precisely, that all kinds of computers are alike in what they can and cannot do. As near as we can tell, any computing device, whether its built of transistors, sticks and strings, or neurons, can be simulated by a universal computer. This is a remarkable hypothesis: as I will explain, it suggests that making a computer think like a brain is just a matter of programming it correctly.
Next page