Agora que vimos que vários modelos de computação são equivalentes
uns com os outros e expressamos a Tese de Church-Turing, que juntamente representam
aquilo que podemos razoavelmente chamar de computável. Voltemos para a questão de que
coisas podem fazer isso. Então, quais são as etapas de uma computação que sistemas
complexos variando entre sistemas dinâmicos caóticos e dispositivos
mecânicos podem realmente realizar. Na verdade, muito antes de Church, Turing,
Rosa Peter e outros teóricos da computação existirem, Charles Babbage, nos anos 1800,
queria construir diferentes computadores mecânicos. Um destes foi chamado de
Maquina Diferencial. Este só era capaz de fazer certos tipos de cálculos.
A meta de Babbage era uma máquina que conseguiria imprimir tabelas de senos,
cossenos, logaritmos, entre outras. Ele esperava que esta fosse movida à vapor,
para que as pessoas não precisassem manualmente fazer isso. Mas Babbage também
sonhava com uma máquina mais complicada chamada de Máquina Analítica, a qual,
tivesse sido construída, em termos modernos seria um computador universal.
E Ana Lovelace estudou sobre os projetos dele e fez algumas boas observações.
Primeiramente, ela escreveu o primeiro programa complexo com 2 loops 'for'
aninhados que computaria um tipo de número chamado de números de Bernoulli, mas ela
também previu algo bem interessante. Ela notou que, se você podia representar os
números nesta máquina, então você poderia também representar várias outras coisas.
Por exemplo música, e ela imaginou máquinas que conseguiriam ajudar na
composição de novas peças musicais. Então o mundo no qual vivemos hoje em dia, onde
os bits e bytes e inteiros que são armazenados dentro dos computadores podem
também representar áudio, vídeos, imagens, filmes, músicas, tudo aquilo que estamos
acostumados, é realmente o mundo que Lovelace imaginou, onde representamos
diferentes tipos de dados com números, dígitos ou bits dentro de um computador.