http://programmingpraxis.com/2009/03/27/a-turing-machine-simulator/