[FrontPage] [TitleIndex] [WordIndex

Note: You are looking at a static copy of the former PineWiki site, used for class notes by James Aspnes from 2003 to 2012. Many mathematical formulas are broken, and there are likely to be other bugs as well. These will most likely not be fixed. You may be able to find more up-to-date versions of some of these notes at http://www.cs.yale.edu/homes/aspnes/#classes.

Turing machines are an abstract model of computation consisting of a finite-state controller moving back and forth on an infinite read-write tape. We generally define "computable" as meaning "a Turing machine can do it" and "computation" as "something a Turing machine does". Every physically realizable computational device yet invented can be simulated by a Turing machine, so talking about Turing machines is often shorthand for talking about computers in general.

In studying algorithms, we usually assume we are dealing with a RandomAccessMachine instead, which can read arbitrary memory locations in constant time, instead of having to wait for the finite-state controller to walk all the way from wherever it was before. But this only affects the speed of the machine (and not necessarily by much)---not what it can or cannot compute.


2014-06-17 11:58