Kempelen Farkas beszélőgépe
1769-ben a magyar Kempelen Farkas billentyűzetvezérlésű hangszintetizátort kezdett építeni, amit 1782-ben mutatott be először. Ez a gép ugyan nem volt programozható, billentyűkkel és nyílások (csövek) ujjal való befogásával, illetve egyéb mechanikus módokon kézileg lehetett vezérelni, és mechanikus elveken alapult (fabillentyűkből és faházból, fémből álló hangképző „szervekből” és egy bőrből, később gumiból készült légtölcsérből állt), de megmutatta, hogy olyan komplex feladatokat is lehet gépileg szimulálni, mint az emberi hang képzése. A gép szótagokat és rövid szavakat tudott „kimondani” (bár a kezeléséhez sok gyakorlás kellett). Több mint 100 évig senki sem tudott Kempelenénél jobb hangszintetizátort építeni.
A programozás feltalálása
A Jacquard-féle szövőgép
1786: Johann Müller német hadmérnök megfogalmazza, hogy szükség van a részeredmények tárolására. Ezen tárolót regiszternek nevezi el és feladatának az adatok ideiglenes elhelyezését jelöli meg.
Az adatok és részeredmények tárolása egyrészt alapfeltétele a programozhatóságnak, másrészt tényleges lépés afelé.
1820-ban Joseph Marie Jacquard olyan mechanikus szövőgépet épített, mely automatikusan, külső programozás révén szőtt mintákat: a gépet kartonból készült lyukkártya vezérelte, amely a mintákat tárolta. A gép széles körben elterjedt, alkalmazták is a szövőiparban, és létezése olyan tudósokat befolyásolt, mint Neumann János (tudjuk, hogy barátaival élénk eszmecseréket folytatott erről és hasonló gépekről).
Babbage programozható számológépei
Sok gépet tervezett Charles Babbage (1792–1871) is. 1812-ben rájött a gépek és matematika közötti összhangra. Ő fogalmazta meg először azokat a követelményeket, amelyeknek minden programozható számológépnek meg kell felelnie:
ne kelljen mindig beállítani a számokat, meg lehessen adni egyszerre az összes számot és műveletet (ez például a lyukkártya segítségével oldható meg);
legyen utasítás (a művelet a lyukkártyán);
legyen külső programvezérlés (a lyukkártyákon tárolt utasítássorozat, a program);
legyen bemeneti egység (ez a lyukkártyát olvasó berendezés);
legyen olyan egység, amely a kiindulási és a keletkezett számokat tárolja (memória);
legyen aritmetikai egység, amely számológépen belül a műveleteket végzi el;
legyen kimeneti egység (a gép nyomtassa ki az eredményt).
Babbage differenciálgépe
Babbage elvben konstruált ilyen gépet, az „Analytical engine”-t (1834), amely 20 jegyű számokkal végzett műveleteket. Nem tudta azonban megépíteni, mert a kor technikája nem tette még lehetővé (például a súrlódást nem tudta lecsökkenteni). Csak száz év múlva építették meg valójában a Babbage által megálmodott gépet.
Ada Lovelace asszony (1816–1851) ugyanakkor Babbage képzeletbeli gépéhez leírta azon módszereket, ahogyan programot lehet rá készíteni. Megjelennek nála az algoritmusok egyes lépései (GOTO, STOP). Ily módon tehát Ada az első ismert programozó. (Az Ada programozási nyelvet később róla nevezik el.)
Még 1822-ben Babbage épített egy másik, gőzzel hajtott gépet, amely differenciálni is tud, a függvények differenciálhányados-függvényét közelítő módszerekkel számolja. Ez volt a differenciálgép (Difference Engine).
A 19. század második felének fejlődése
IBM lyukkártyarendező gép („szorter”)
1853 George Boole An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities című művében publikált áramkörelméletben is alkalmazható logikai algebrája a későbbi digitális működésű gépek tervezésének alapjait jelentette.[1]
1887 Herman Hollerith (1860–1929) nagy tömegű adat statisztikai feldolgozására alkalmas gépet épít. A kifejlesztését az tette szükségszerűvé, hogy az USA-ban a népszámlálás (1890) feldolgozása hagyományos módszerekkel mintegy 3 évet (mások szerint 10 évet) vett (volna) igénybe, a végül szükségesnek bizonyult 6 hét helyett. A gép lyukkártyákat tudott rendezni és szétválogatni, amit mechanikusan tudott megoldani, tűk segítségével. A (papír) lyukkártyák egydolláros nagyságúak voltak. Hollerith 1924-ben alapított cégéből fejlődött ki a későbbi IBM.
Elektromechanikus számológép
Az első számológép feltalálásától több mint 300 évet kellett várni arra, hogy a mechanikus gépeket felváltsák az elektronikus eszközök. 1936-ban Konrad Zuse megalkotta az első programozható elektromechanikus számológépet, a Z1-et.