kottke.org

...is a weblog about the liberal arts 2.0 edited by Jason Kottke since March 1998 (archives). You can read about me and kottke.org here. If you've got questions, concerns, or interesting links, send them along.

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).

By Jason Kottke    Jul 18, 2002 at 03:06 pm

There are 9 reader comments

Steven Garrity    Jul 18 2002    7:00PM

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.

nick    Jul 18 2002    9:48PM

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.

Michael Buffington    Jul 19 2002    8:35AM

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.

Mark    Jul 19 2002    9:58AM

-
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.

jkottke    Jul 19 2002    10:06AM

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.

Jerry Kindall    Jul 19 2002    4:31PM

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.

Rich Kottke    Jul 19 2002    7:48PM

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?

Evelyn Redtree    Jul 20 2002    6:17PM

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.

Buzz Andersen    Jul 23 2002    8:33AM

...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.

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

kottke.org, quickly...

The best way to get a sense of what kottke.org is all about is to head to the front page or check out some random entries from the archives. Follow kottke.org via RSS or Twitter.

Want to share your something special with kottke.org's readers? Sponsor the RSS feed for a week!

Looking for work?

See more on the Job Board.

Recommended sites

David Archer    Matthew Paul Thomas    Rebecky    greg.org    jimr(ay)    evhead    panopticist    strange maps    Nivi    Type for you.    Airbag    Ikeepadiary    The Pop!Tech Blog    Eater    tremble.com    Frumination    Personism    NYT Science    Idle Words    The Laboratorium