There's a version of the standard TuringMachine that is resource bounded, such that an algorithm terminates after its allocated or available resources have been used up. In this case, no infinite loops can be run because they will eventually exhaust the number of CPU cycles available to it. In this way, we can avoid the HaltingProblem. But this seems like cheating to me. After all, what's supposed to happen when the resources get used up? The program fails? So is the algorithm now dependent on a variable external to the frame? Very bad.