A számológép is programozható

Térjünk vissza a számításokhoz! Az arab közvetítésű indiai számjegyek és az algoritmus terjedésével szárnyakat kapott a gépesítés lehetősége. A termelés, a kereskedelem, a tudomány fejlődése egyre több számítást igényelt.

A mechanikai vezérlések csodálatos eredményei, Jacquard lyukkártyáinak a szövőipart forradalmasító sikerei mély hatással voltak a számításokkal foglalkozók körére is. Nem lehetne ezeket a mechanikai lehetőségeket a számításokban is felhasználni? Azt az utat keresték, hogyan lehet a bonyolultabb műveletek algoritmusát gépesíteni. Ha van szabálya annak, hogyan kell egymás utáni lépésekkel valamilyen kezdeti számsorból egy eredményszámra jutni, akkor miért ne lehetne a játék babákhoz vagy a szövőgéphez hasonlóan magát az algoritmus végrehajtását is mechanizmusokkal, lyukkártyákkal irányítani?

Charles Babbage angol matematikus 1828-ban elkészítette ún. differenciagépét, amely matematikai táblázatok kiszámítására szolgált, de a modellt követően a nagygép előállítására nem kapott anyagi támogatást. Ennek hiányában azon gondolkodott, hogyan lehetne általánosabb célú, "univerzális" számítógépet építeni? 1833-ban született meg az analitikus gép ötlete, amely lyukkártyán (!) megadott utasítások sorozatának megfelelően végezné számításait, vagyis: programozott gép lenne. A lyukkártya - mint a vezérlőprogram hordozója - Babbage idejében már ismert volt. Tény, hogy a számítások

gépesítésében való alkalmazására ő gondolt először, és ez teljesen új elvet jelentett. Ezért a felismeréséért tekintjük Babbage-t a számítógép egyik szülőatyjának.

Ez a gép volt további életének legfőbb célja, ezen dolgozott haláláig, 1871-ig. Ezután fia, egyes részekkel még kiegészítve, a londoni Science Museumnak ajándékozta a szerkezetet. Babbage így írta le elgondolásait: "Az analitikus gép két részből áll. Az egyik a tár, amelyben a változókat, az egyes számítások eredményeit helyezik el, a másik a "malom", amely a változókkal végrehajtja a műveleteket. Az analitikus gép számítási képletei algebrai összefüggések. Kétfajta lyukkártyára van szükség: az ún. operációs kártyákra, amelyek a műveleti utasításokat (az algoritmust) tartalmazzák, valamint a változók kártyáira, amelyek az adatokat közlik a géppel." (Az ilyen - kívülről beadott algoritmus alapján dolgozó gépet külső programvezérlésűnek hívjuk.)

A számítási algoritmusok gépesítésére akkor már megvolt az igény, de a kor technikája még nem tette lehetővé megvalósítását. 1939 és 1944 között építette meg Howard Aiken, a Harward Egyetem (USA) professzora a Babbage-elven működő első gépet, amelynek ismert neve: Mark I. Ez elektromechanikus jelfogók és kapcsolók sokaságával 200 műveletet tudott percenként elvégezni. A gondolatot és a megvalósítást még 100 év választotta el egymástól.