Pascal összeadógépe
Az első, egységes egészként működő összeadógépet Blaise Pascal francia filozófus tervezte 1642-ben.
A gépet fából készítette az akkor csupán 19 éves Pascal, adóbeszedőként dolgozó apja számára, hogy megkönnyítse annak munkáját.
A tökéletesítést Pascal gépéhez képest a bordás henger (vagy bordás tengely) alkalmazása jelentette. Az alapelv az ábráról jól leolvasható: a henger felületén 9 db, eltérő hosszúságú borda van, ezek széles fogaskerék-fogként működnek. A hengerhez illeszkedő fogaskerék saját tengelye mentén elmozdítható, és megfelelő beállításával elérhető, hogy a bordás henger egy teljes körülfordulása során fogaiba pontosan 1, 2, ... 9 számú borda akadjon be és így ennyi foggal forduljon el a fogaskerék.
Mechanikus számológép az 1960-as évekből
Folyamatok vezérlésére már évszázadok óta alkalmaztak különböző vezérlési módokat. Zenegépekben pl. a tüskés henger volt a jellemző megoldás. A henger méret (vagyis hát a kerülete, mert azon voltak a tüskék) természetesen megszabta a program hosszát: a henger minden körülfordulása ugyanazt a tevékenységet idézte elő.
A mintás szövés vezérlésére viszont olyan módszer kellett, amivel egyrészt hosszabb programot is meg lehet adni, másrészt pedig viszonylag egyszerűen lehet a mintát megváltoztatni, a szövőszéket “átprogramozni”. Az idők folyamán többféle ilyen vezérlést találtak fel. Brösel 1690 körül vászonszalagra faelemeket ragasztott, ezzel határozták meg a szőtt anyag mintáját. A mintát a vászonszalagok cseréjével lehetett változtatni. A lyoni selyemszövőgépekben kb. 1725 óta lyukasztott papírcsíkok látták el ugyanezt a feladatot. Joseph Marie Jacquard (1752-1834) francia feltaláló a vezérlést tovább tökéletesítette. 1810-ben olyan automatikus szövőszéket tervezett, amelynél fából készült vékony, megfelelően kilyuggatott lapok (“kártyák”) vezérelték a bonyolult minták szövését. A lyukkártyákat láncra fűzte, ezzel lehetővé téve a minták (azaz a szövőszék vezérlésének) gyors és könnyű megváltoztatását. (Ez a “gyors és könnyű” állítólag mintegy 15 napos munkát jelentett.)
Létrejöttek tehát az automaták, amelyek emberi irányításra nem szorulnak, és bizonyos határok között önmagukat irányítják.
A képen a szövőszék tetején látható a lyukkártyás vezérlőszerkezet.
A XIX. században Charles Babbage (1792-1871) brit matematikus és feltaláló kidolgozta a modern digitális számítógép alapelveit.
Őt tekinthetjük a számítástechnika atyjának.
Több új típusú gépet is kigondolt. Ilyen volt a Difference Engine (differenciagép), amit logaritmustáblázatok készítésére tervezett az 1820-as évek elején. A gép a számolás eredményét a tervek szerint pontozóval közvetlenül a nyomda által használható fémlemezbe írta volna. A differenciagép bizonyos függvényértékek (négyzetek, harmadik hatványok, logaritmusok, stb.) sorozatának kiszámítását célozta.
Babbage hat, egymáshoz kapcsolódó számolóművet tervezett, mai ismereteink szerint hibátlanul. A gép 20 jegyű számokkal dolgozott volna. Babbage csak a gép egyes részeit tudta elkészíteni, a munkát azonban nem tudta befejezni: részben anyagi okok miatt, részben pedig a kor technikai lehetőségei nem voltak elegendőek. 1834-ben a differenciagép előállítási költségeit 17 470 fontra becsülték (egy gőzmozdony ugyanekkor 1000 fontba került!!).
Az első működő differenciagépet Babbage készülékének egyszerűsítésével 1853-ban készítette el Pehr Scheutz és fia, Edvard Scheutz. Ez a gép harmadrendű differenciákat és 15 jegyű számokat kezelt csak. Christel Hamann tovább tökéletesítette a berendezést, és segítségével 1910-ben tízjegyű logaritmustáblázatot jelentetett meg. Differenciagépeket egészen az 1940-es évekig használtak matematikai táblázatok készítésére.
A londoni Science Museumban 1991-ben Babbage részletes rajzai alapján megépítették az eredeti differenciagép egyszerűsített változatát korszerű anyagokból. A gép négyezer alkatrészből áll, méretei is tekintélyesek:
3,4 m × 0,5 m × 2,1 m.
A berendezés tökéletesen működött: hibátlanul kiszámította a 7. hatványok táblázatának első száz értékét.
1833-ban a differenciagép elveinek továbbfejlesztésével tervezte meg Babbage az Analytical Engine-t (analitikus gépet). A gép elkészítéséhez a kormánytól kapott előlegként 17 000 font támogatást, de a saját tőkéjéből is ráköltött mintegy 20 000 fontot (más forrás szerint a támogatást nem az analitikus géphez, hanem a differenciagéphez kapta Babbage). A kormány 1842-ben, miután még mindig nem voltak látható eredmények, megvonta támogatását Babbage munkájától. (“Mi lenne, ha a gépet arra használnánk, hogy számolja ki, mikor fog működni?” — élcelődött Robert Peel miniszterelnök.)
Ez a gép teljes egészében sohasem épült meg, pedig a modern számítógépek sok sajátságával rendelkezett.
Babbage univerzális gépet tervezett, amely adatbeviteli és eredmény-kiviteli egységből, számolóműből és részeredmény-tárolóból állt volna.
A gép lyukkártyákról olvasta volna be az információkat, tudott volna utasításokat és adatokat tárolni, matematikai műveleteket végrehajtani és adatokat kinyomtatni.
Lyukkártyák vezérelték volna a tulajdonképpeni számítási folyamatokat is. Megjelent a feltételes vezérlésátadás ötlete: egy szám előjelének függvényében a gép kétféleképpen folytatta volna működését.
A tárolómű 200 részeredmény tárolására lett volna alkalmas. Erre a célra 1000 db, egyenként 50 fogaskereket tartalmazó oszlopot tervezett Babbage.
Haláláig ezen a gépen dolgozott, bár az építése már kezdetben megakadt: a kor finommechanikai lehetőségeivel ezt a gépet nem lehetett elkészíteni. Ha megépült volna, egy futballpálya területét foglalta volna el és öt gőzgép energiája kellett volna a működtetéséhez.
A gép működési elvei miatt azonban sok történész Babbage-et és a munkatársát, Augusta Ada Byron (Augusta Ada Lovelace) matematikust (Lord Byron angol költő lányát) tartja a modern digitális számítógép igazi feltalálójának.
Egy olasz mérnök írt francia nyelvű beszámolót Babbage differenciagépéről. Ezt olvasta az akkor 27 éves Augusta Ada Lovelace. Ő javasolta Babbage-nak, hogy ne decimális, hanem bináris formában tárolja a számokat. Ugyancsak ő találta ki, hogy hogyan lehetne a géppel egy utasítás-sorozatot többször végrehajtatni. Ada Lovelace-ről nevezték el később az Ada programnyelvet.