nally, another key difference is that the VN machine is not subject to the "halting problem," whereby a TM could run forever. As discussed in Chapter 7, the halting problem is generally "undecidable," meaning that given an action table and an input tape, there exists no formal proof that a TM will necessarily halt! In contrast, a VN machine does not have a halting problem. We may not attempt to prove the point here, but simply stated, the finite size of the memory must eventually cause the VN machine to "choke on its own garbage," unlike the TM, which may run indefinitely! But unlike the idealized TM, the realistic VN computer can be programmed to stop automatically if caught in an infinite loop, or trespassing a preset CPU time limit. As a matter of fact, modern VN computers are fully capable of emulating any universal TM, and for this reason they are said to be Turing complete, Turing equivalent, or computationally universal. 8 This does not mean that such a UTM emulation would be any quicker, more efficient, or easier; probably to the contrary in most general cases. The key difference remains the finiteness of the VN computer memory. We shall now focus on the VN computer and look in more detail at the ALU and its elementary computing circuits. As we have seen, the ALU processes the codeword bits that are loaded in the two registers A and B. The ALU is able to interpret high- level instructions from the memory into basic micromachine operations. In short, a high-level instruction may be stated in a form such as "C = a + b," which the ALU interprets as "load the operands a, b pointed by the corresponding memory addresses 8 See http://en.wikipedia.org/wiki/Turing-complete 15.2 From computer architecture to logic gates into the registers A and B, perform the addition of the two, and return the result C to the dedicated memory address. Such an operation calls for a microprogram, which must process the two binary operands a, b (a = aja2, ak, b=bib2, bit-by-bit (a, bi) basis. 9 Another possible instruction may be "IF