Turing Machines
Turing machines extend finite-state models by adding an unbounded tape that serves as both input and working memory. This removes the counting limit inherent in finite state machines, enabling them to recognize patterns that require arbitrary depth, such as matching parentheses.
A central insight is the existence of a Universal Turing Machine. By encoding any Turing machine’s description as an integer, a single machine can read that index and faithfully simulate the encoded machine’s behavior. This idea directly underpins the stored-program concept found in general-purpose computers and is visible in practical instruction set architectures like the Beta, whose assembly-language programs are translated into machine code that the processor executes uniformly.
The Church–Turing Thesis posits that every effectively calculable function corresponds to a Turing-computable function, making the Turing machine a yardstick for computational power. Any architecture that supports conditional branching and basic arithmetic, such as the Beta, qualifies as Turing universal, confirming that high-level assembly abstractions do not exceed the theoretical ceiling of models-of-computation.
However, Turing’s framework also reveals fundamental limits. Through diagonalization, one can show that no Turing machine can solve the Halting Problem—determining in finite steps whether an arbitrary program halts on a given input. This result firmly establishes the field of uncomputability, demonstrating that well-defined questions exist for which no algorithm can ever be constructed.