kottke.org home archives + xml about kottke.org contact me
kottke.org - home of fine hypertext products

The Pattern on the Stone by Daniel Hillis

A one-paragraph explanation of how a computer works from Danny Hillis's The Pattern on the Stone (which you should read if you're interested in how computers work but don't really know):

"The work performed by the computer is specified by a program, which is written in a programming language. This language is converted to sequences of machine-language instructions by interpreters or compilers, via a predefined set of subroutines called the operating system. The instructions, which are stored in the memory of the computer, define the operations to be performed on data, which are also stored in the computer's memory. A finite-state machine fetches and executes these instructions. The instructions as well as the data are represented by patterns of bits. Both the finite-state machine and the memory are built of storage registers and Boolean logic blocks, and the latter are based on simple logical functions, such as And, Or, and Invert. These logical functions are implemented by switches, which are set up either in series or in parallel, and these switches control a physical substance, such as water or electricity, which is used to send one of two possible signals from one switch to another: 1 or 0. This is the hierarchy of abstraction that makes computers work."

Reading Hillis's explanation reminds me of Ray and Charles Eames's classic Powers of Ten film. In the same way that the computer is able to function by abstracting levels of functionality, expanding or limiting our view of the universe helps us understand it better, dealing with it at different scales rather than all at once (you don't get very far in describing the our solar system in terms of individual subatomic particles).

Reader Comments
9 comments
Steven Garrity says:
Fascinating. Perhaps we need a new saying like standing on the shoulders of giants to reflect how we're building on the work of engineers.
» by Steven Garrity on Jul 18, 2002 at 07:00 PM
nick says:
There's a good discussion in Gerard Edelman's Bright Air, Brilliant Fire, on how humans work on similar levels of abstraction, starting with the subatomic, going right up to consciousness and abstract thought. It's equally fascinating, and provides a nice counter to the claims of brain scientists to 'explain' consciousness simply in terms of brain chemistry: in essence, it's rather like trying to explain what this post means from the electrical signals which underlie its presence on my computer, the web server, the computers of those who read it.
» by nick on Jul 18, 2002 at 09:48 PM
Michael Buffington says:
I think that The Pattern on the Stone description of computers only works for those of genius level intelligence.

If I dared to use the phrase "hierarchy of abstraction" or "finite-state machine" with someone who didn't know a darn thing about computers, I think they'd possibly punch my ear, or kick me in the nards.

I prefer this simple explanation: Computers work on fate, some more than others. It's fate that they open your files, and fate that they sometimes eat your files for breakfast. Plugging your computer into a electrical socket simply fuels the fate engine. How the fate engine works is vastly unimportant, just as Twinkies and Nutty Ho Ho's are vastly unimportant in the grand scheme of things. Here, have a Ding Dong.
» by Michael Buffington on Jul 19, 2002 at 08:35 AM
Mark says:
-
Or there's the ultra-primitive approach. Telling someone like my mother [or someone like me, come to think of it....] that computers are like very very large filing cabinets where the cards are cross-indexed, so that there are cards with 'outside' information on them, and other cards that tell the superclerk how to relate the outside cards to each other.

The French word for computer 'ordinateur' suggests some of that.

Except that there's now a generation of people who are not comfortable with either computers _or_ card-index filing cabinets.

Oh dear.
» by Mark on Jul 19, 2002 at 09:58 AM
jkottke says:
I think that The Pattern on the Stone description of computers only works for those of genius level intelligence.

In fairness to Hillis and the book, the above quote appears at the end of the third chapter. In the preceding text, he very carefully explains how a computer works -- clearly defining abstraction and finite-state machines -- starting with 1s and 0s and adding one layer of abstraction at a time until he's described a fully programmable computer.
» by jkottke on Jul 19, 2002 at 10:06 AM
Jerry Kindall says:
Petzold's "Code" takes it from the other way around, beginning with simple circuits that turn lights on and off, progressing to logic gates, then moving up to memory circuits, and ending up with microprocessors. I know a couple different assembly languages so I'm familiar with a pretty low level of abstraction already, but Petzold starts off several levels lower than that. In fact I seem to recall that nearly all of Petzold's stuff about software is shoehorned into one chapter and is much less detailed than the hardware stuff.
» by Jerry Kindall on Jul 19, 2002 at 04:31 PM
Rich Kottke says:
The very first version of the microprocessor in your PC didn't come out of the chip fab with a C compiler built in. First someone had to write a cross assembler (on a different processor), and then port a C compiler over, and then debug it, before anything interesting could be done at all on the new microprocessor. Then some rudimentary OS kernel was developed, then the full OS, then some applications, and then (finally) web pages.

Or an even more existential issue - how do you build an EPROM programmer without an EPROM programmer?
» by Rich Kottke on Jul 19, 2002 at 07:48 PM
Evelyn Redtree says:
I approach this from having read Neal Stephenson's Cryptonomicon, in which a fictional digital computer inventor is able to create the first digital computer using pipes and mercury (to complete electrical circuits) based on his intimate knowledge of pipe organs (the musical instrument). It's a real different way of thinking about it, but accessible to a non-computer person such as myself. Also, I think, inspired as a way to interpret how computers work based on ancient technology.
» by Evelyn Redtree on Jul 20, 2002 at 06:17 PM
Buzz Andersen says:
...in which a fictional digital computer inventor is able to create the first digital computer using pipes and mercury...

This is actually one of the key points in "The Pattern on the Stone"--that there is nothing about computers that necessitates the use of silicon, photolithography and so forth. He describes how any chip design in existence could actually be built as a "hydraulic" system using a series of pipes and valves. Such a "processor" would be enormous, of course, but it would still work the same way as it's tiny silicon counterpart. Hillis also describes a tinkertoy computer he built, which is kind of amusing.
» by Buzz Andersen on Jul 23, 2002 at 08:33 AM

 
This thread is closed to new comments. Thanks to everyone who responded.

What is this place?

This entry is part of the kottke.org weblog, of which Old iPhone price check on eBay is the latest entry.

Within this weblog, this entry belongs in the Ants, chaos, and cities, Books, Science, Software/tools, Technology categories and was published in July 2002.

Advertisement

dot dot dot

Advertise on kottke.org via The Deck.

Looking for work?
kottke.org

You're visiting kottke.org. All content by Jason Kottke (contact me) unless otherwise noted, with some restrictions on its use. Good luck will come to those who dig around in the archives. If you've reached this point by accident, I suggest panic.