Now that we've seen that a number of
models of computation are equivalent
to each other and we've expressed the
Church-Turing Thesis that they jointly
represent what we can reasonably call
computable. Let's return to the question
of what things can do this. So, what
complex systems ranging from chaotic
dynamical systems to mechanical devices,
can actually carry out the steps of a
computation. In fact long before Church
and Turing and Rosa Peter and the other
theorists of computable theory came along,
Charles Babbage, in the 1800's, wanted to
build various mechanical computers. One of
them was called the Difference Engine. It
was really only capable of carrying out
certain types of calculus. Babbage's goal
was to have a machine which could print
out good nautical tables of sines and
cosines and logarithms and that sort of
thing. Hopefully steam powered so that
people wouldn't have to do it by hand.
But Babbage also dreamed of a more
complicated machine called the Analytical
Engine which is really in modern terms,
would have been, had it been built, a
universal computer. And Ada Lovelace
studied his designs and came up with
some very nice observations about them.
First of all, she wrote the first complex
program with two nested 'for' loops that
would have computed a type of a number
called the Bernoulli numbers but she also
predicted something very interesting. She
noticed that if you could represent
numbers in such a machine, then you could
represent many other things as well.
For instance music and she imagined
machines which could aid in the
composition of new musical pieces.
And so the world we live in today where
the bits and bytes and integers that are
stored inside computers can also
represent audio, video, images, movies,
music, all the things we are used to,
that's really the world that Lovelace
envisioned where we can represent
many different types of data with numbers,
digits, or bits inside of a computer.