It's easy to visualize the tape as a physical object [1], but there is another important, "invisible" part of a Turing machine, that is the program state space, which is harder to illustrate or visualize (especially for non-trivial programs and theoretical proofs, which balloon into enormous messes).

Your program is a graph of states that the Turing Machine can be in, and the "head" moving over the tape drives a "body" around that graph.

So not only is there a tape "head" pointing to a place on the tape, but a state space "body" pointing to a place in the program, walking around a labyrinth of connected places, like a memory palace.

And you can encode data in the connections between those "rooms". For example, if you write a turing machine to output "101", where did those numbers come from? From the way a connected series of "rooms" were configured in the program state space. It moves the "body" from room to room to remember what part of the output it's in.

The tape can change, but the program state space itself never changes, only your location in the program. (If you enjoy self modifying code, you should check out John von Neumann's 29 state cellular automata [2] and Universal Constructor [3]!)

I think of the rooms as being connected by magic one-way exit doors (not the helpful Sirius Cybernetics Corporation variety, which would bring too much complexity and indeterminism to this beautifully simple model). Each door is labeled with the symbols that could be on the tape, and lead to other rooms. (Or back to the same room!) When you walk through a specific door, it writes a certain symbol on the tape and moves the tape head in a certain direction. Each door has a symbol to match from the tape, a symbol to write to the tape, the direction to move the tape head, and a the next room to move into.

I don't understand TECO, but I would guess that Marvin Minsky's Universal Turing Machine TECO program used text buffers with cursors to represent the tape with the head position, the instruction table with the state register program counter.

By the terminology of Wikipedia's informal description, the location of the "body" is the "state register" or program counter, pointing into the "rooms" or program graph represented by the "finite table of instructions". [4]

>A state register that stores the state of the Turing machine, one of finitely many. Among these is the special start state with which the state register is initialized. These states, writes Turing, replace the "state of mind" a person performing computations would ordinarily be in.

>A finite table of instructions that, given the state(qi) the machine is currently in and the symbol(aj) it is reading on the tape (symbol currently under the head), tells the machine to do the following in sequence (for the 5-tuple models):

>Either erase or write a symbol (replacing aj with aj1), and then

>Move the head (which is described by dk and can have values: 'L' for one step left or 'R' for one step right or 'N' for staying in the same place), and then

>Assume the same or a new state as prescribed (go to state qi1).

>In the 4-tuple models, erasing or writing a symbol (aj1) and moving the head left or right (dk) are specified as separate instructions. Specifically, the table tells the machine to (ia) erase or write a symbol or (ib) move the head left or right, and then (ii) assume the same or a new state as prescribed, but not both actions (ia) and (ib) in the same instruction. In some models, if there is no entry in the table for the current combination of symbol and state then the machine will halt; other models require all entries to be filled.

[1] http://www.worldofcomputing.net/wp-content/uploads/2013/01/t...

[2] https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton

[3] https://en.wikipedia.org/wiki/Von_Neumann_universal_construc...

[4] https://en.wikipedia.org/wiki/Turing_machine#Informal_descri...