Prekursor wynalazku komputera - Alan Turing
Alan Turing, 1912-1954, Anglik
Skonstruował maszynę do deszyfracji informacji zakodowanych za pomocą ENIGMY.
W 1936r. dokonał analizy logicznej pojęcia „obliczenie”. Doszedł do wniosku, że możliwe jest skonstruowanie uniwersalnych komputerów, które można tak zaprogramować, aby wykonywały dowolne obliczenia. Istnieją jednak pewne zagadnienia matematyczne nie nadające się do rozwiązania za pomocą obliczeń (są nierozwiązywalne).
Logiczny dowód Turinga o istnieniu uniwersalnych komputerów odegrał kluczową rolę w rozumowaniu pionierów rozwoju współczesnych komputerów jak np. John von Neumann.
Inny matematyk pracujący nad rozwiązaniem problemu obliczeń to Emil Post ur. w 1897r. w Polsce a od 7 roku życia przebywający w USA (Nowy Jork).
Rozumowanie Turinga które doprowadziło go do konstrukcji automatu obliczeniowego polegało m.in. na tym, że
śledził, jak człowiek wykonuje obliczenia i wybierał z tego tylko istotne działania. Dochodził do nich przez wprowadzanie ograniczeń. Czynnik wyeliminowany ograniczeniem był nieistotny. Np. niepotrzebny jest drugi wymiar geometryczny (wystarczy jednowymiarowa taśma z danymi) oraz niepotrzebne jest aż 10 cyfr (wystarczą dwie do zakodowania każdej liczby). W wyniku otrzymujemy niezbędny zestaw do automatycznych obliczeń - taśmę podzieloną na kwadraciki (pola) do wpisywania znaków 0 i 1 oraz zbiór siedmiu operacji (instrukcji):
zapisz 0
zapisz 1
przesuń o 1 pole w prawo
przesuń o 1 pole w lewo
czytaj znak i idź do kroku .... jeśli przeczytałeś 0
czytaj znak i idź do kroku .... jeśli przeczytałeś 1
zatrzymaj się
Przykładowy PROGRAM zatrzymujący się na pierwszej napotkanej na taśmie jedynce wygląda następująco:
przesuń o 1 pole w prawo
czytaj znak i idź do kroku 1 jeśli przeczytałeś 0
zatrzymaj się
Turing dowiódł też, że możliwe jest zbudowanie jednego programu uniwersalnego który sam czytałby z taśmy kod innego, dowolnego programu i potem sam symulował działanie tego przeczytanego programu wykonując odpowiednie obliczenia na danych z taśmy. Domyślamy się, że takim uniwersalnym programem jest procesor.
Początkowo programy wbudowywane były w procesor. Były to tzw. kalkulatory np. ENIAC - potężne „monstrum” zbudowane w 1945r. dla celów obliczeń balistycznych i wykorzystane też do obliczeń przy konstrukcji bomby atomowej. Dopiero w 1949r. w Anglii została, po kilku latach pracy, uruchomiona maszyna licząca EDSAC działająca na nowych, ulepszonych zasadach stając się protoplastą współczesnych komputerów. Znaczący udział miał tu wybitny matematyk John von Neumann. Nowy komputer składał się z uniwersalnego procesora i pamięci wewnętrznej (operacyjnej) z zapisanym w niej kodem programu i danych. Jest tu widoczny bezpośredni związek z ideą Turinga maszyny uniwersalnej.
We współczesnych komputerach pamięć wewnętrzna, nazywana RAM (Random Access Memory - pamięć bezpośrednio dostępna) oraz procesor zdolny do wykonywania instrukcji programu zapisanego w RAM montowane są na tzw. płycie głównej komputera i stanowią jego podstawowe składniki.
Program „podwajania jedynek” (patrz pliki program blok i kroki)
1. zapisz 0
2. przesuń o jedno pole w lewo
3. czytaj znak i idź do kroku 2 jeśli przeczytałeś 1
4. zapisz 1
5. przesuń o jedno pole w prawo
6. czytaj znak i idź do kroku 5 jeśli przeczytałeś 1
7. zapisz 1
8. przesuń o jedno pole w prawo
9. czytaj znak i idź do kroku 1 jeśli przeczytałeś 1
10. zatrzymaj się
źródło: Martin Davis, Czym jest obliczanie w „Matematyka współczesna Dwanaście esejów” WNT 1983r.