 
Summary: 4 Computability
In this section we leave the theme of a hierarchy of languages and their corresponding au
tomata behind. (That's why there was a summary for Sections 1 to 3.) However, we will still
meet some of the concepts, and a few languages, as examples in Section 4. The aim in what
follows is to examine Turing machines as abstract computation devices. It should be quite
clear from what we have seen so far that Turing machines can be applied to many more tasks
than deciding, recognizing and enumerating languages.
We can think of a Turing machine as a program which takes one or more inputs which
are written on the tape before the execution of the program starts. 23 Now the execution of
the program may either finish, in which case the content of the tape can be considered the
output of the program on the given input, or it may continue forever, in which case there is
no output.
The topics we consider in this section are the following:
. What kind of things can a Turing machine compute?
. What happens if we vary the concept of a Turing machine?
. How powerful are Turing machines compared with other devices, in particular `real'
computers?
. Are there problems that cannot be solved by any computing device (including Turing
machines?)
. What kinds of problems are solvable, and what kinds aren't?
