Last September I posted the Pancomputation trilogy (parts: I, II & III) which was a follow-up to last spring’s Digital Dualism trilogy (parts: 1, 2 & 3). The first trilogy was a continuation of an exploration of computer modeling I started in 2019. Suffice to say, over the course of writing these posts, my views on what “computing” means evolved and crystalized.
As discussed in the Pancomputation posts the notion of computation is difficult to pin down (many general concepts are because we don’t have even more general concepts to define them with). A pancomputation view sees everything as computing. A computer science view restrictively equates it with a Turing Machine.
I’ve realized my view depends heavily on computational dualism.
The earlier posts (especially the most recent four) explore in detail what I mean by that, but briefly my view is that a computation involves two unrelated layers. There is a physical layer that operates according to the laws of physics, and there is an abstract layer that has only the law imposed by an algorithm.
Anyone who has played a buggy video game and seen “physical” objects impossibly intersecting has seen the lack of physical law that occurs in the abstract layer. In fact, video game designers work hard to create a (fake!) consistent lawful virtual reality, but software is infamously hard to get 100% correct.
All behavior in virtual reality is due to the algorithm and has no connection with the physics of the real world. But the machine running that algorithm is entirely bound by physical law.
That is computational dualism. In my view, without those two layers, it’s not computation, it’s evaluation. (See previous posts for an explanation of the difference.)
What I like about this view is that it includes analog computers as computers. They also have dual layers. On the other hand, analog radios — which have much in common with analog computers — are still not computers because they don’t.
[In contrast, a pancomputation view conflates computation and evaluation and sees both as computation. I’ll note that, while I don’t take that view, there’s nothing intrinsically wrong with it. It’s a valid, if perhaps a bit useless, choice. (Useless only in that it makes it harder to talk about computing.)]
Here, as kind of a wrap-up of this whole arc, I’ll explore exactly why an analog computer is a computer while a radio is not.
To begin, let’s consider an actual (if simplistic) electronic analog computer:
Not all analog computers (or even all digital computers) are electronic. I’ve mentioned that a slide rule is (just barely) a simplistic analog computer. It’s capable of doing a single logarithmic computation. There is a hint of dualism in a slide rule’s scales — physical distances represent logarithms.
Meanwhile, I decided an abacus was not a (digital) computer because all the computation takes place in the user’s head. It’s the user that’s the computer. (Also true with slide rules, but the log scales provide a computational assist the mind cannot.) The abacus is largely a convenient scratch pad.
Figure 1 requires a bit of explaining for those without an electronics background. Fear not, it’s pretty simple.
The jagged shapes (labelled R1, R2,…) are resistors, and they do what their name implies: they resist electricity. Think of them as valves that are never fully open or fully closed. They always allow some electricity through. Their resistance value determines how much.
The two parallel line shapes (labelled C1, C2,…) are capacitors, and again the name is meaningful: they have the capacity to store electricity. Think of them as buckets.
So we have valves and buckets. Think of the electricity as water.
The “lo-Z source” is the input — the “water” comes from the source. The “lo-Z” just means the source can supply whatever is demanded without parching. The “hi-Z sink” is the output. The “hi-Z” just means we only care about the “water pressure” (voltage) — no (or very little) water flows out the output.
So what does this circuit do? Well, that’s the thing. It’s a generalized circuit that could model a number of things.
Basically, water from the source trickles in through the valves to slowly fill the buckets from left to right. Imagine a chain of buckets with small holes so water drains from one bucket to the next. The trickle of water is very small at first, but increases as the bucket fills and has more water trying to exit the hole. The first bucket fills before the second, and so on to the last.
I’ve seen a 2D version of this — a grid of capacitors connected by a mesh of resistors — that modeled a water table. Different values of resistance stood for the permeability of the soil, and different values of capacitance stood for its ability to hold water. In this case, the voltages at each node (labelled V1, V2,…) represented the level of the water table at that point.
The 1D circuit above could represent a signal delay line or the various parasitic effects of a long electrical transmission line. It could also represent heat transfer through a material.
The dynamics involved are general and universal enough that the circuit can model a number of physical systems. Different values to the resistors and capacitors alter the dynamics to match different contexts.
That is analog computation in a nutshell. A physical system that models a phenomena representing some real world (or even imagined) behavior. That’s the dualism of computation.
Also note the generality of the circuit. The physical behavior of the electronics is mapped to some real-world physical behavior, but is general enough to apply to myriad different such behaviors. That’s what the dualism allows. Note also the sense of an external map that translates the voltages to something meaningful (water table level, heat, etc).
In digital computers, it’s the flow of numbers that is general and universal enough to represent a wide variety of real-world situations. Digital computers are game-changers because the flow of numbers is even more general and universal than electronic circuitry. Digital computers are vastly more flexible.
In contrast, consider an analog radio:
In most radios the circuitry is complex enough that a schematic would just be confusing. The block diagram of Figure 2 is all we need, plus it makes the overall vague similarity clear. There is a one-dimensional path (left-to-right) of signal flow.
Along that path there is considerable processing of that signal. Each block in Figure 2 represents a somewhat sophisticated circuit that does something important in turning an RF signal into an audio program.
As noted in the diagram, some of that involves amplifying — making the signal stronger. Ideally such amplification only amplifies; it shouldn’t distort or alter. The filter stages do what their name implies, they remove undesired parts of the signal (like other radio stations). The mixer also does what its name implies, it mixes two signals together. The demodulator removes the high-frequency radio signal leaving the audio program.
All of which is a bit more sophisticated than the simple analog computer of Figure 1, so the temptation to think of a radio as “computing” the audio is strong. Under a pancomputation view, it is. (Under the same view planets and satellites “compute” their orbits.)
Under a computational dualism view, however, a radio is just a physical device capable of evaluating and processing radio signals. Crucially, that’s all it can do. It’s not modeling some other real-world phenomenon. It doesn’t stand for or represent anything but what it is. There’s no external map.
Radios just do what they do, and that’s all they do.
There is such a thing as “digital” radio, which can have two meanings. It usually refers to a digital broadcast (such as in satellite radio or as in broadcast TV starting around the year 2000). Among circuit-heads it can also refer to the radio receiver using a digital computer to do much of the signal processing. Many modern radios do have digital computers inside them. (The one in your car, almost certainly.)
But being run by an embedded computer does not a computer make. Your microwave is also (rather obviously, I hope) not itself a computer, but it almost certainly is run by one. Many of our devices are (my furnace, my washer/dryer, my TV, my iPod, etc).
As I mentioned above (and here), digital computers have been major game-changers because of their generality and universality. They are, after all, Universal Turing Machines. If it can be computed, they can compute it.
The main point here is that signal processing is not computing, at least not under a computation dualism view.
The more general notion of information processing depends a lot on the nature of the information. Digital information processing — real-world values mapped to numbers — comes closest to computation, and almost certainly uses computation to process the information. The actual flow of information may not constitute computation itself, though. (There are some specific situations where it could.)
My iPod, for example, stores musical in a digital format and uses an embedded computer to turn that into the music I hear on my walks. But I wouldn’t consider that flow of information itself computation any more than I do a radio.
For me it all boils down to whether the physical machine is implementing an abstract layer that has no connection to that machine. Actual digital computers — the ones we buy from computer stores — in fact have multiple layers. For instance, the notion of bits, logical ones and zeros, is an abstraction implemented by the physical layer of transistors and voltages.
Grouping those into bytes or words and providing logical and arithmetic operations for them is another layer. The CPU and its instruction set is yet another layer on top of those. The actual algorithm the computer is running is therefore highly abstracted.
In fact, a fundamental notion in digital computing is the complete decoupling of the physical implementation and the computational abstraction. The causality of the two have no real connection.
I’ve been chewing on this for years because I’ve had the same question that’s plagued many: what, really, is computation?
Should we take a pancomputation view and treat computing as nothing special? Or is it the game-changer it seems to have been? Why do we easily agree my Dell laptop is a real computer and equally easily agree (most of us) a rock is not? What are we sensing there?
After years of thought and guessing, I think it turns out to be fairly simple. A computer has dual layers, the concrete and the abstract. Without both, it ain’t computing.
Stay analog, my friends! Go forth and spread beauty and light.