Computer Literacy: Part 3 is an essay by Jack Rusher, published here Tuesday, September 19, 2006. It is part of Science For Humanists.
A humanistic guide to our digital laborers, part 3. See also parts one, two and four.
Addresses
The filing cabinet in which Pierre keeps his index cards is divided into numbered slots, one for each card. The slot-numbers act as addresses for the cards in the same way that street numbers act as addresses for houses: they denote a location in which something can be found.

Burnham’s Folly, on 5th Avenue between 22nd and 23rd streets, is one of the author’s favorite addresses.
1. When the series contains single letter values (which we call “character values” because each is a number in the computer that has a printed character, or glyph, representation), we call it a “string” or “character string.”
2. In computer science we refer to this conceptual empty marker as NULL or nil, which, in practice, usually just means the special address 0.
A whole series1 of cards can be addressed using the slot-number for the first card, so long as the end of the series is marked with a special card, or, as is usually done in Pierre’s cabinet, with an empty slot2.
3. Or, given the re-locative nature of memory objects, an indexical, but that’s probably not helpful for this discussion.
Instruction manuals written by the Technocrats must refer to cards by their numbered locations, which change when the cards are moved. This adds a layer of complexity to the process that often causes difficulty for Technocrats-in-training. The concept is actually quite simple — another freebie of the linguistic mind: the address is a signifier3, the value of the card at that address is the signified — but when a Technocrat makes a mistake that causes Pierre to reach for an empty slot (signifying nothing), the result is the sound and the fury of a crashing postmaster.
The tedium of simultaneously micromanaging Pierre and dealing with this addressing system are so off-putting that no one wants to explain anything very complicated in this manner. Unfortunately, Pierre only understands instructions written out in this over elaborate form. The Technocrats have come to think of this descriptive system as a language unto itself, one that we’ll call “postermasterese.”
Translation
4. Though it’s not turtles all the way down; there’s always a Pierre at the bottom, speaking postmasterese (i.e. machine language).
Abstractionists generally have a very limited tolerance for postermasterese. Once they reached the point at which they needed to address more complicated problems, they started to invent simpler languages that could be translated into postmasterese. The actual translation of these languages is done by the postmasters themselves using instructions written in postmasterese, or, increasingly, using translators written in these simpler languages and translated into postmasterese using other translators4.

An illustration of one of the stones collected at Rosetta by the French Army.
5. Almost no one writes in postmasterese anymore, but there’s a slightly simplified dialect called (for reasons that space forbids me to explain) C. It’s around 35 years old, and still widely used. It is the language the author has used most often in his computer science career.
6. There are many, many abstract languages, some of them meant to be generally useful, others targeted at specific problem domains. The one mentioned earlier in this series, LISP, is the one the author finds most aesthetically pure, but it’s fairly unpopular, its use limited to effete aesthetes like him.
The Concretists are distrustful of translators, preferring to read and write in the original for fear that their code-poetry will be lost. The Concretists argue that translated versions of their work contain extra steps that introduce inefficiencies, while the Abstractionists claim that it’s more or less impossible to get very large instruction manuals right without a translator. There are, as a consequence, a continuum of explanatory languages ranging from the the very concrete ones5 preferred by Helmut to the abstract6 postmaster’s poetry woven by Adalina.
No matter where on the language continuum a particular Technocrat falls, she spends most of her time solving problems of logic and linear algebra in order to figure out the best way in which someone with Pierre’s limitations can complete a given task. The translators allow more abstract (and thus often simpler) notation of the solutions to problems, but they don’t make the problems themselves go away.
In the next part of the series we’ll look at some of the mathematical techniques used to solve the most common sorts of problems that occur within the domain of computer science.