From: Thomas Walker Lynch
Date: Sat, 25 Jul 2026 09:00:35 +0000 (+0000)
Subject: new patch panel diagrams
X-Git-Url: https://git.reasoningtechnology.com/%27%20%20%20window.RT.dirpr_library%20%20%20%27/Hindu-Arabic%20number%20fig%204.png?a=commitdiff_plain;h=bf96fc1d1a527db651503684598317e96c043bf2;p=TM-2026
new patch panel diagrams
---
diff --git a/document/book/TM-2026.html b/document/book/TM-2026.html
index a920f6b..c97ab94 100644
--- a/document/book/TM-2026.html
+++ b/document/book/TM-2026.html
@@ -39,7 +39,7 @@
At a conference in Paris in 1900, David Hilbert presented a list of pressing unsolved problems in mathematics.
- Second on his list was "The Compatibility of the Arithmetical Axioms." Hilbert challenged mathematicians to find a means to demonstrate that "a finite number of logical steps based upon them [axioms] can never lead to contradictory results" .
+ Second on his list was "The Compatibility of the Arithmetical Axioms." Hilbert challenged mathematicians to find a means to demonstrate that "a finite number of logical steps based upon them [axioms] can never lead to contradictory results" .
@@ -119,7 +119,7 @@
- In reading Alan Turing's 1936 paper, it is striking how modern the text feels, specifically because he discusses algorithms, stored programs, and the mechanical limits of computation.
+ In reading Alan Turing's 1936 paper, it is striking how modern the text feels, specifically because he discusses algorithms, stored programs, and the mechanical limits of computation.
While his contemporaries largely built purely mathematical and logical frameworks, Turing uniquely tied computation theory directly to the abstraction of machines executing stored programs. Because physical hardware capable of executing stored memory programs had not yet been invented, this explicit architectural grounding makes Turing's work remarkably prescient. Still, Turing could not formally connect the Turing Machine to modern architectures, simply because those architectures did not yet exist. Here, by modern, I refer to architectures utilizing random access system memory, dedicated instruction fetch streams with dynamic branching, and discrete processing units. Though Charles Babbage's 1842 Analytical Engine touched on these concepts, they would wait until the 1940s to reemerge. The practical engineering context of 1936 was limited to calculating machines programmed via patch panels. Hence, for example, there is no explanation in his paper as to why a von Neumann architecture machine (1945) running a program would exhibit the computation theoretic results derived from a computation theory based on the Turing Machine (1936).
@@ -172,7 +172,7 @@
The classic text by Hamacher, Vranesic, and Zaky carefully defines the organizational level as sitting between architecture and implementation .
- is the register transfer level description of the machine, which includes internal buses, external buses and the state machines that implement the protocols used, control units, interrupt structures, and ALU layout. Crucially, it is at this level that decisions regarding instruction level parallelism are made, such as whether the processor will employ a scalar, superscalar, or VLIW design, the depth of its execution pipelines, the use of out of order execution, branch prediction strategies, and the specific hierarchy of hardware caches. It dictates the logical arrangement of hardware and the procedures that force the data to flow to satisfy the architectural constraints. is sometimes called , and it is made by a .
+ is the register transfer level description of the machine, which includes internal buses, external buses and the state machines that implement the protocols used, control units, interrupt structures, and ALU layout. Crucially, it is at this level that decisions regarding instruction level parallelism are made, such as whether the processor will employ a scalar, superscalar, or VLIW design, the depth of its execution pipelines, the use of out of order execution, branch prediction strategies, and the specific hierarchy of hardware caches. It dictates the logical arrangement of hardware and the procedures that force the data to flow to satisfy the architectural constraints. is sometimes called , and it is made by a .
@@ -202,7 +202,7 @@
- The common understanding of the word 'architecture' is what Hamacher and Zaky call an . For example, even the most experienced of architects will say things like a microprocessor has a "superscalar architecture", though whether a processor is a scalar, superscalar, or VLIW machine is clearly a question of computer organization.
+ The common understanding of the word 'architecture' is what Hamacher and Zaky call an . For example, even the most experienced of architects will say things like a microprocessor has a "superscalar architecture", though whether a processor is a scalar, superscalar, or VLIW machine is clearly a question of computer organization.
@@ -234,7 +234,7 @@
Suppose we are interested in a given Turing Machine where the machine will potentially be run after being given any one of a number of input tapes , and for each of those inputs the same tape with the results written will be , then we notate this as:
-
+
@@ -286,7 +286,7 @@
then we can say without qualification that is a . Though still implied are the sets of machines, tapes, and questions.
-
+
Definition of the computation theoretic consequential/inconsequential transform property
@@ -363,7 +363,7 @@
: The initial state, a member of , in which the finite control is found.
-
+
: The set of final or accepting states, a subset of .
@@ -375,7 +375,7 @@
This machine makes use of a single ended tape. If a computation specifies a two way infinite tape, it can be emulated by interleaving the addresses: assigning odd addressed cells to represent the right going half, and even addressed cells to represent the left going half. This emulation requires taking two steps instead of one to advance in a given logical direction. When analyzing the time complexity of an algorithm, this overhead doubles the constant on the linear term, leaving the asymptotic order of complexity entirely unchanged. The outcomes of decider programs are unaffected. Therefore, utilizing a single ended tape is a computation theoretic inconsequential variation of the two way tape machine.
-
+
Hopcroft and Ullman explain a step of the machine by showing a representation of the tape with the state variable melded in to the left of the currently scanned symbol. Suppose ; i.e., the next move is leftward. Then,
@@ -408,7 +408,7 @@
q1:
' ' : {L: done}
[0, 1]: {R: q_scan}
-
+
# Scan to the rightmost digit and place the EOM terminator 'E'
q_scan:
[0, 1]: R
@@ -453,56 +453,56 @@
The following trace demonstrates the reversal of the string "110" using the same head embedded in the tape diagram as was used above, with a small variation. Here the head position is indicated using a bullet character, while the current state is listed in the left column. The empty symbol prints as a space. If you align the first line at the top of your window and scroll down, the execution plays out like an animation.
@@ -510,10 +510,10 @@
@@ -565,9 +565,9 @@
@@ -602,7 +602,7 @@
Firstly note that excluding from does not prevent a Turing machine from writing to a tape to be used as a message. If a message writing machine wants to write an to the tape, it merely writes a different symbol then erases it.
Secondly, once it is realized that symbols can be written to tape as messages, the very reason of excluding it from , to guarantee that received messages are parsable, is lost. A message authoring machine could, for example, happily output a variable length array of strings while using an arbitrary number of empty symbols to separate the elements. A receiving machine could then not know how many elements it should try to recover, or when to say a string of symbols is sufficiently long to not be considered a separator. Nothing in the Turing Machine definition prevents this.
-
+
Furthermore, the Universal Turing Machine can act as the aforementioned higher authority. In this case, Turing Machines, and sometimes their tapes, are written to a Universal Turing Machine's tape. Consequently, it is not only possible to want to terminate multiple strings in series, as mentioned in the prior paragraph; the termination issue itself is embedded in proofs such as the Halting Problem.
A common technique programmers use for embedding strings with terminators within other strings is to embed escape characters. This is another in-band protocol, and it is inefficient. The escape sequences grow exponentially with nesting levels. Also, such strings with embedded escape sequences cannot be interpreted without knowledge of the intended nesting level of the string author, which requires the interpreter of the string to know the author's intentions.
@@ -723,9 +723,9 @@
: is the current state of the machine.
-
+
: is the data register.
-
+
: is the gate register.
@@ -855,13 +855,13 @@
# Phase 1: Scan right to EOM and initialize the EOR marker.
Q·initial:
λ: read_g
- δ:
+ δ:
(EOM: Q·Setup_EOR)
Q·Search_EOM_0
Q·Search_EOM_0:
λ: right
- δ:
+ δ:
Q·initial
Q·Setup_EOR:
@@ -986,7 +986,7 @@
The number of states is constant at 24 independent of how much data is to be reversed. No arc refers to a payload value.
- The form of this diagram shows a lead in, a long loop, and a tail leading to done. This is suggestive of code followed by a while loop that breaks out and then further code completes the program.
+ The form of this diagram shows a lead in, a long loop, and a tail leading to done. This is suggestive of code followed by a while loop that breaks out and then further code completes the program.
Similarly, the AST for the number 3:
-
+
(defparameter *three-ast*
'(progn
@@ -2043,13 +1857,13 @@
(write s) (step)
))
-
+
- If we were to dynamically evaluate these ASTs in the first order, the Arabic representation of each number would be physically written in unary code on the tape.
+ If we were to dynamically evaluate these ASTs in the first order, the Arabic representation of each number would be physically written in unary code on the tape.
- For the second order difference operation, we compose the ASTs to create a new program. Here we extract the body of the second operand's AST and substitute every (write s) followed by a (step) command with an inverted pair: a (left) command followed by writing the empty symbol (write â¡).
+ For the second order difference operation, we compose the ASTs to create a new program. Here we extract the body of the second operand's AST and substitute every (write s) followed by a (step) command with an inverted pair: a (left) command followed by writing the empty symbol (write â¡).
@@ -2087,8 +1901,8 @@
We pass our two natural number ASTs to this composer, and we get as a result a newly synthesized AST.
- (defparameter
- *primitive-five-minus-3-ast*
+ (defparameter
+ *primitive-five-minus-3-ast*
(primitive-compose-subtract *five-ast* *three-ast*)
)
@@ -2099,18 +1913,18 @@
;; (write s) (step)
;; (write s) (step)
;; (write s) (step)
- ;; (left) (write â¡)
- ;; (left) (write â¡)
+ ;; (left) (write â¡)
+ ;; (left) (write â¡)
;; (left) (write â¡)
;; )
-
+
I called this 'primitive' because it is missing the simplification. This sort of simplification is also known as compiler code optimization. Optimizations can be operation specific, or general in nature. Here we will send the primitive composition's body to an analyzer which scans the steps and removes the redundant operations.
- Because of the purity of the Lisp syntax, we are able to present a remedial simplifier example here. A (step) followed by a (left) annihilate each other, resulting in zero net movement of the tape head. Similarly, on an initially empty tape, a (write s) followed immediately by overwriting with the empty symbol (write â¡) annihilate each other.
+ Because of the purity of the Lisp syntax, we are able to present a remedial simplifier example here. A (step) followed by a (left) annihilate each other, resulting in zero net movement of the tape head. Similarly, on an initially empty tape, a (write s) followed immediately by overwriting with the empty symbol (write â¡) annihilate each other.
@@ -2157,8 +1971,8 @@
After giving the difference program to the simplifier, we get:
- (defparameter
- *simplified-five-minus-3-ast*
+ (defparameter
+ *simplified-five-minus-3-ast*
(simplify-machine *primitive-five-minus-3-ast*)
)
@@ -2183,7 +1997,7 @@
Let us take the multiplicative inverse of the additive identity as an example, AKA division by zero. In the second order, when we divide, say 6/0, the machine will not reduce. It will return a second order value:
-
+
(divide 6 0)
@@ -2199,7 +2013,7 @@
(multiply 2 (divide 0 0))
-
+
There is no special help here. Hence, (divide 0 0) remains as an error flag.
@@ -2223,10 +2037,10 @@
- The difference between adjacent function values in the above sequence is called the first finite difference. The forward first difference is defined as:
- \Delta_i = f(t_{i+1}) - f(t_i).
- While the backwards first difference is
- \Delta_i = f(t_i) - f(t_{i-1}).
+ The difference between adjacent function values in the above sequence is called the first finite difference. The forward first difference is defined as:
+ \Delta_i = f(t_{i+1}) - f(t_i).
+ While the backwards first difference is
+ \Delta_i = f(t_i) - f(t_{i-1}).
If 'forward' or 'backwards' is not specified, then the difference is taken to be 'forward'. Hence, extending a function is identical to adding the first difference. Thus a sequence of function values implies a sequence of first differences.
@@ -2286,7 +2100,7 @@
- In order to design for indefinite extension, the Turing Machine tape must retain the function value alongside with its forward differences. Because the second difference is constant higher order differences are all zero. Hence the tape requires a three component vector to hold the differences.
+ In order to design for indefinite extension, the Turing Machine tape must retain the function value alongside with its forward differences. Because the second difference is constant higher order differences are all zero. Hence the tape requires a three component vector to hold the differences.
@@ -2374,7 +2188,7 @@
- Taking successive finite differences reduces the degree of the polynomial by exactly one at each step. Consequently, the \omegath difference evaluates to a constant, and the next difference evaluates to exactly zero.
+ Taking successive finite differences reduces the degree of the polynomial by exactly one at each step. Consequently, the \omegath difference evaluates to a constant, and the next difference evaluates to exactly zero.
Lemma: A D_0 vector of finite extent \omega generates a polynomial function of degree \omega
@@ -2396,7 +2210,7 @@
- Continuing to \omega = 3, the polynomial is f(t) = a_0 + a_1 t + a_2 t^2 + a_3 t^3. Evaluating the third difference D_{0,3} isolates the highest order term, yielding D_{0,3} = 6a_3. This allows immediate recovery of the highest constant: a_3 = D_{0,3} / 6.
+ Continuing to \omega = 3, the polynomial is f(t) = a_0 + a_1 t + a_2 t^2 + a_3 t^3. Evaluating the third difference D_{0,3} isolates the highest order term, yielding D_{0,3} = 6a_3. This allows immediate recovery of the highest constant: a_3 = D_{0,3} / 6.
@@ -2445,13 +2259,13 @@
A pattern emerges. Because each successive forward difference operator annihilates the lowest power of t, the resulting algebraic system is upper triangular. For any extent \omega, the \omegath difference equation reduces to D_{0,\omega} = \omega! a_\omega. This structural guarantee permits a person to reliably recover a_\omega = D_{0,\omega} / \omega!. Because an initial tape of extent \omega dictates that D_{0,\omega} is nonzero, a_\omega is guaranteed to be nonzero. All subsequent lower order constants are then systematically resolved through cascading back substitution.
-
+
To observe the formal mechanics of this progression, a person can alternatively array these relationships into a matrix equation mapping the polynomial constants, a_i, to the initial tape differences, D_{0,n}. The coefficients of this transformation are defined by the Stirling numbers of the second kind, denoted S(i,n):
- \begin{bmatrix} D_{0,0} \\ D_{0,1} \\ D_{0,2} \\ \vdots \\ D_{0,\omega} \end{bmatrix} =
+ \begin{bmatrix} D_{0,0} \\ D_{0,1} \\ D_{0,2} \\ \vdots \\ D_{0,\omega} \end{bmatrix} =
\begin{bmatrix}
0! S(0,0) & 0! S(1,0) & 0! S(2,0) & \cdots & 0! S(\omega,0) \\
0 & 1! S(1,1) & 1! S(2,1) & \cdots & 1! S(\omega,1) \\
@@ -2463,7 +2277,7 @@
- For any extent \omega, the final row of this strictly upper triangular matrix again simplifies to D_{0,\omega} = \omega! a_\omega.
+ For any extent \omega, the final row of this strictly upper triangular matrix again simplifies to D_{0,\omega} = \omega! a_\omega.
@@ -2587,7 +2401,7 @@
Evaluating this form in the first order at the point t=5 returns a (divide 0 0). It is a strange thing, because when we plot h(t) values, against t there is an obvious correct value on the curve at t=5. There is no special feature that would make it questionable.
-
+
Suppose we move to a second order evaluation, and for places the computation does not work, we return the machine that isn't evaluating. That is similar to what we did to get (divide 0 0), but the zeros in that expression came from a prior step first order evaluation. Let us instead give the quotient composer two machines to compose, and have it return a value when reduction to the first order is possible, and return the full problem as posed to it when it can not be reduced.
@@ -2685,7 +2499,7 @@
-
+
As Newton pointed out, we can know the differences on the D_0 row of the table from the quotient function:
@@ -2874,13 +2688,13 @@
TTU.step()
goto increment
-
+
Here TTU is the tape transport unit. It has the number to be incremented mounted on it. This number is either zero, which would mean the leftmost cell is empty, or it is of the same form as a result from a Natural Number extension machine. A TTU.read places a copy of the symbol instance found in the cell under the head into the read buffer automatically when the machine enters a new state on the programmed controller, so it is not counted as a step. In contrast, the other actions are associated with the state of the programmed controller, so when the machine arrives at a write, step, or halt node, it means that the programmed state controller has taken a step. Sequential instructions mean unconditional next state choices, whereas an if signals a conditional next state choice. The if condition is a logical proposition based on the read symbol.
The loop form here is worth taking note of, as it will come up again. The controller executes a first action, that of a read, followed by a middle break test, and then the recursive form actions.
- Each row shows an input tape, and actions taken to write the result tape. For any given row, the result tape is the same as the input tape on the next row down. The table lists 7 increments, which is sufficient to reach the maximum count that can be held by a 3 bit counter.
+ Each row shows an input tape, and actions taken to write the result tape. For any given row, the result tape is the same as the input tape on the next row down. The table lists 7 increments, which is sufficient to reach the maximum count that can be held by a 3 bit counter.
@@ -3060,7 +2874,7 @@
The left neighbor cell to the leftmost cell of a given area is considered to be the left neighbor cell to the area. Similarly, the right neighbor cell to the rightmost cell of a given area is considered to be the right neighbor cell to the area. If the given area is located at the left end of the tape, then it has no left neighbor cell. If the given area is open on the right, then it has no right neighbor cell.
- A tape partition is a set of areas that completely span a tape. For any partition of a single ended Turing Machine tape, at least one of the areas will necessarily be infinite.
+
A tape partition is a set of areas that completely span a tape. For any partition of a single ended Turing Machine tape, at least one of the areas will necessarily be infinite.
Head partition
@@ -3125,7 +2939,7 @@
- It follows that if knowledge of the end of the active area is needed, this information must be encoded as a message. For example, a special symbol can be reserved in the alphabet specifically to serve as the end of active area marker. Each time a machine steps beyond the current end of active area marker and does a write, it writes the marker in the right neighbor cell, and goes back and erases the old mark. This method is related to communications theory and the science of signaling. Here, the active area marker is an out of band control signal.
+ It follows that if knowledge of the end of the active area is needed, this information must be encoded as a message. For example, a special symbol can be reserved in the alphabet specifically to serve as the end of active area marker. Each time a machine steps beyond the current end of active area marker and does a write, it writes the marker in the right neighbor cell, and goes back and erases the old mark. This method is related to communications theory and the science of signaling. Here, the active area marker is an out of band control signal.
@@ -3133,7 +2947,7 @@
- By definition, a computation must finish in a finite number of steps. It follows that the active area when a Turing Machine halts a computation will always be finite. Consequently, if a Turing Machine initially starts working with a tape that was computed by another Turing Machine, the length of the input will be finite. Still, that input will be in the active area, so the receiving Turing Machine will need to read control data left on the tape under a common communication protocol to be able to find the bounds of the input area.
+ By definition, a computation must finish in a finite number of steps. It follows that the active area when a Turing Machine halts a computation will always be finite. Consequently, if a Turing Machine initially starts working with a tape that was computed by another Turing Machine, the length of the input will be finite. Still, that input will be in the active area, so the receiving Turing Machine will need to read control data left on the tape under a common communication protocol to be able to find the bounds of the input area.
@@ -3141,7 +2955,7 @@
In band and out of band control
-
+
Because of the impossibility of recognizing certain tape features, when a tape is written by one Turing Machine, then used by another, there must be some sort of system for messaging control. There are two approaches for mixing data and control together: one is in band signaling, while the other is out of band signaling.
@@ -3156,7 +2970,7 @@
Virtual cells
- A given finite area that is not sitting on the end of the tape will have a left neighbor area and right neighbor area that are not in the area. If the given area is sitting on the end of the tape there will be no left neighbor area. If the area is open on the right, there will be no right neighbor area.
+ A given finite area that is not sitting on the end of the tape will have a left neighbor area and right neighbor area that are not in the area. If the given area is sitting on the end of the tape there will be no left neighbor area. If the area is open on the right, there will be no right neighbor area.
Now imagine we define a Turing Machine such that when it steps right, it steps to the right neighbor area, and when it steps left, if there is a left area, it steps to that, otherwise it returns a left-of-leftmost symbol. The read instruction reads all of the cells in the area, and similarly the write instruction writes them all. Then for this machine the areas are virtual tape cells.
@@ -3171,7 +2985,7 @@
Various portions of this text have mentioned calling a Turing Machine as a subroutine. This is described as unmounting the tape from the calling machine, mounting it on the subroutine machine, running the subroutine machine until it halts, then unmounting the tape from the subroutine machine, and mounting it back on the calling machine. However, this would be a manual process. To automate the process, we use a Universal Turing Machine. It has the definition for the calling machine and the subroutine machine on its tape. We can add an additional tape to the machine to hold the stack. Then a subroutine call happens much as it does in conventional software.
- A gasket machine is actually a set of subroutines with one corresponding to each of the tape transport commands.
+
A gasket machine is actually a set of subroutines with one corresponding to each of the tape transport commands.
@@ -3298,14 +3112,14 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
\aleph_{0} - \aleph_{-1} = 1
-
+
Neither machine can be run. However we can compose the two machines, then simplify the composition. When we do so, the ever larger Natural Number machines annihilate each other, and the increment machine remains. The increment machine can be run, so we end up with an output value.
Size
-
+
Consider the case of a partitioned tape. Then consider that we write a gasket, such that we have a higher level Turing Machine that considers each of the areas of the partition as a cell. So then, initially the Turing machine starts with its head on the leftmost area, stepping right steps to the right neighbor area etc. In this manner we abstract the concept of a cell to areas. A length then becomes a count of areas; however the size remains a count of the cells. Something similar is done in the C language, where the length of an array is a count of the elements in the array, but the size of the array is a count of bytes. A byte being an addressable unit in physical memory, and thus the underlying cell that everything is built up from.
Multiple machines and sharing tapes
@@ -3360,7 +3174,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
- When the base machine tape cells behind an abstract area are physically contiguous, we say that the abstract area is compact. In the odd even tape partition example, the abstract areas lack compactness.
+ When the base machine tape cells behind an abstract area are physically contiguous, we say that the abstract area is compact. In the odd even tape partition example, the abstract areas lack compactness.
Zero length is a second order concept
@@ -3376,7 +3190,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
However we have a couple of problems, if there is no cell on the tape that has the special property. The area marking machine will step right without halting while looking for the marker. As a second problem, if the all the cells to right of the leftmost area cell, the area marker machine will never halt.
-
+
Now suppose we employ a second order analysis.
@@ -3431,19 +3245,19 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
Need for the concept of cell
Let us ask a question, what is it that an address is actually locating? Let us consider this question in the light of an example. Suppose we have the tape sequence of:
-
+
- a, b , c, ε, ε, ε â¦
+ a, b , c, ε, ε, ε â¦
Now consider that we have an address of '2'. If we read tape address 2 we get back the letter 'c'. So the address is locating the 'c'. Now suppose we write at address 2. Say we write 'γ'. Now our sequence is:
-
+
a, b , γ, ε, ε, ε â¦
Now we write 'Ð', resulting in the sequence:
-
+
a, b , Ð, ε, ε, ε â¦
@@ -3451,7 +3265,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
It would appear that the answer to our question is that address 2 is locating different things at different times. First it was, c, then γ, then Ð. Yet the address did not change. It feels a little unsatisfactory to suggest that our concept of location depends on the value addressed. Also, notice, that when we made the Natural Number Turing Machine, that the values on the tape that was placed into correspondence with the Natural Numbers were never mentioned. Yet, we can't seem to answer the question of 'what is being addressed' without giving a value.
Addresses speak to the structure of the tape rather than the values held on the tape. So as to facilitate this interpretation, we note that a sequence consists of a sequence of cells holding elements, rather than being simply a sequence of elements. Given the concept of a cell we can say that an address always locates the same cell, though the contents of that cell can change.
-
+
This operates similarly to a small extension to the already existing concept of a variable in mathematics. In mathematics we allow that a variable can take on different values, though its name never changes. Now we are going to say that a cell can take on different values, though its address never changes. Furthermore, as the cell is part of the sequence, we are going to say the cell itself has a left neighbor or right neighbor, excluding the value in the cell.
Address of an area
@@ -3524,13 +3338,13 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
f
| FF
-
+
t
| FT
-
+
x
| TF
-
+
z
| FF
@@ -3755,11 +3569,11 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
- A Turing Machine program faces a situation analogous to physical constraints. Given the operands are found on the tape, and the carry-in can affect the msb of the sum, the head will have to move ever more cells rightward to convey that lsb information up to the msb. Based solely on the propagation time of that information, addition is found to be a linear time algorithm. This propagation remains computation class limiting even if the Turing Machine is given an unbounded number of independent heads.
+ A Turing Machine program faces a situation analogous to physical constraints. Given the operands are found on the tape, and the carry-in can affect the msb of the sum, the head will have to move ever more cells rightward to convey that lsb information up to the msb. Based solely on the propagation time of that information, addition is found to be a linear time algorithm. This propagation remains computation class limiting even if the Turing Machine is given an unbounded number of independent heads.
- There appears to be alignment among physical limitations, resource limited computing, and steps spent by Turing Machines while they carry information across a linear tape. This alignment indicates that a reasonable realization will be computation theoretic inconsequential.
+ There appears to be alignment among physical limitations, resource limited computing, and steps spent by Turing Machines while they carry information across a linear tape. This alignment indicates that a reasonable realization will be computation theoretic inconsequential.
@@ -3826,7 +3640,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
Branch prediction saves the time required to do a full fetch, but fundamentally it does not change the data flow graph of the program. The same decisions are made.
-
+
Suppose that an organization keeps the operands for a function in a content-addressable memory. When the operands are recognized, it then immediately returns the looked-up value. This approach, called memoization, bypasses the internal looping of the function. Hence, this does participate in the decision making of a program, and could potentially change the computation theoretic complexity of programs with certain properties where the same operands occur in patterns and lead to an expensive computation. Memoization is typically designed into computer languages, rather than being built into the organization of a computer. Chances are, at the computer organization level or lower, it is more efficient to simply execute the presented instructions.
@@ -3883,8 +3697,8 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
> git clone http://www.github.com/Thomas-Walker-Lynch/tm
Cloning into 'tm'...
- remote:Counting objects: 3052, done.
- remote:Total 3052(delta 0),reused 0(delta 0),pack-reused 3052
+ remote:Counting objects: 3052, done.
+ remote:Total 3052(delta 0),reused 0(delta 0),pack-reused 3052
Receiving objects: 100% (3052/3052),2.41 MiB|1.52 MiB/s,done.
Resolving deltas: 100% (2366/2366),done.
> cd tm
@@ -3939,20 +3753,20 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
Synonyms
- (defmacro defsynonym (old-name new-name)
- "Define OLD-NAME to be equivalent to NEW-NAME."
- `(defmacro ,new-name (&rest args) `(,',old-name ,@args))
- )
- (defconstant â
nil)
- (defsynonym /= â )
- (defsynonym <= â¤)
- (defsynonym >= â¥)
- (defsynonym not ¬)
- (defsynonym and â§)
- (defsynonym or â¨)
- (defsynonym string/= stringâ )
- (defsynonym string<= stringâ¤)
- (defsynonym string>= stringâ¥)
+ (defmacro defsynonym (old-name new-name)
+ "Define OLD-NAME to be equivalent to NEW-NAME."
+ `(defmacro ,new-name (&rest args) `(,',old-name ,@args))
+ )
+ (defconstant â
nil)
+ (defsynonym /= â )
+ (defsynonym <= â¤)
+ (defsynonym >= â¥)
+ (defsynonym not ¬)
+ (defsynonym and â§)
+ (defsynonym or â¨)
+ (defsynonym string/= stringâ )
+ (defsynonym string<= stringâ¤)
+ (defsynonym string>= stringâ¥)
(defsynonym lambda λ)
@@ -3964,7 +3778,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
* (q a b c)
- (A B C)
+ (A B C)
{â¦} - unevaluated list
@@ -4165,7 +3979,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
The latency table above speaks to the physical reality that constrains all programs, entirely independent of their theoretical complexity class. This illustrates why computer architects spend almost their entire effort designing machines that execute as many instructions per cycle as possible, operating within a memory subsystem mathematically optimized to keep data in the lowest latency tiers. As a demonstration of this industry focus, there is not a single chapter dedicated to computation theory in Hennessy and Patterson's definitive textbook on the subject John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, 6th ed. (Cambridge: Morgan Kaufmann, 2017)..
-
+
@@ -4216,7 +4030,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
- The competing standard, initially backed by Intel and soon adopted as the IEEE standard, demanded accuracy to the last bit for each operation, alongside synchronized interrupts. This predictable structure permitted a program to overflow, promote the value, and seamlessly continue an operation. It also specified the use of error tags that participate in a higher order error algebra. This standard ultimately prevailed because its precision guarantees and deterministic predictability provided the necessary foundation for the formal analysis of programs.
+ The competing standard, initially backed by Intel and soon adopted as the IEEE standard, demanded accuracy to the last bit for each operation, alongside synchronized interrupts. This predictable structure permitted a program to overflow, promote the value, and seamlessly continue an operation. It also specified the use of error tags that participate in a higher order error algebra. This standard ultimately prevailed because its precision guarantees and deterministic predictability provided the necessary foundation for the formal analysis of programs.
@@ -4336,7 +4150,7 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos
Thus, while a Turing Machine extending the function only requires a simple accumulator, a machine tasked with multiplying two initial tapes must perform a combinatorial cross multiplication to generate the expanded tape before the extension sequence can begin.
-
+
Division and the Reciprocal Difference Vector
diff --git a/document/book/TTCA_machine.svg b/document/book/TTCA_machine.svg
index 1cfc912..0e0b38f 100644
--- a/document/book/TTCA_machine.svg
+++ b/document/book/TTCA_machine.svg
@@ -22,15 +22,15 @@
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="true"
- inkscape:zoom="1.5540715"
- inkscape:cx="467.80344"
- inkscape:cy="447.21236"
- inkscape:window-width="1920"
- inkscape:window-height="1131"
- inkscape:window-x="0"
- inkscape:window-y="32"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg311">Next StateNext StateTable (δ)TabledecoderGate Decoder==rightmostTTU [n]TTU [1]TTU [0]datadataUNIT 0TAPE...q one hotq one hotstatusstatuscommandControlControlmotorAction TableAction Table (λ)Table dHaltHaltSwitchSwitchBankBank
+ id="rect39862"
+ width="54.063389"
+ height="37.38728"
+ x="559.95764"
+ y="219.98454" />clkreset