
“But what does this second turtle stand on?” persisted James patiently.
To this, the little old lady crowed triumphantly,
“It’s no use, Mr. James — it’s turtles all the way down.”
J. R. Ross (Constraints on Variables in Syntax, 1967)
It is quite a useful thing in understanding a system to assign a boundary to the system. Then we can characterize the system using its interactions with things outside the system. And then, we can think of these things outside the original system also as separate distinct systems. We stand outside all of these systems and try to understand the interactions between the whole set of systems.
When we design a system, we get to partition the computing elements in the system across multiple subsystems. A coherent system is a result of capturing the essentials — in a sense Platonic forms — so that the captured abstraction is stable and durable.
Technically, each of the subsystems can contain its own subsystems and so on. It is silly to impose restrictions on how deep the nesting continues. In a real life system, this is part of the design and the architecture of the system. It is always trutles all the way down, only now, you are the one placing the turtles!
Here, we restrict ourselves to Computing and Langauge Design. We don’t worry about the Solar System, Physics or Chemistry. We are in the business of capturing abstractions that we can use for computational activity.
We also restrict ourselves to the Von Neumann Architecture. While this exploration may become useful for the folks in Quantum Computing, we don’t bother with that. We would be overextending ourselves.
This is an exercise in reflection, consolidation, crystallization in retrospect as opposed to envisioning a new computing paradigm or attempting to create a new civilization on Mars. Instead, we focus on the fundamentals!