A számítástechnika kultúrtörténete – Charles Babbage és kora

Charles Babbage

A korszerű számítástechnika, illetve a számítógépgyártás egyik legnagyobb személyisége volt Charles Babbage (1791.dec.26.-1871.okt.18.), de az egyik legellentmondásosabb is! Ő állt elő a programozható számítógép ötletével! Bár gépei a kor technikai színvonalának megfelelően még mechanikusak voltak, de egyiket sem fejezte be személyes, illetve anyagi okokból. Ennek ellenére működési elvük meghökkentően sok hasonlóságot mutat a mai modern számítógépekével. (Kép eredetije: http://en.wikipedia.org/wiki/Charles_Babbage)

 

 

 

1822-ben Babbage levelet ír Sir Humphry Davy-nek, a Royal Society akkori elnökének a matematikai és hajózási táblázatok kiszámításának "fárasztó monotonításáról, és ennek elviselhetetlen munkának" automatizálásáról megír egy értekezést "On the Theoretical Principles of the Machinery for Calculating Tables." (Táblázatok kiszámítására alkalmas gépek elméletének alapelveiről), majd felolvasást is tart e témáról a Királyi Csillagászati Társaságban. Babbage kollégái erőteljes nyomására a királyi kincstárhoz fordult anyagi támogatásért. A pénzügyminiszter 1823-ban jóvá is hagyta a támogatást, mivel az új szerkezet segítségével főleg a hajózási táblázatokat lehetne pontosítani. Mostanában az ilyesfajta "szponzorálás" megszokott, de akkoriban ez rendkívüli esemény volt. Sajnos Babbage nem mérte fel a vállalt feladat nagyságát és 1827-ben egészségügyileg összeroppant. Külföldre utazott, ami alatt Cambridge-be kinevezték matematika-professzornak, Sir Isaac Newton egykori tanszékére. Jellemző rá, hogy professzorkodása 12 éve alatt egyszer sem tartott előadást...

Babbage analitikus gépe hatodfokú polinomok kezelésére készült. Eme polinomok általános alakja: polinom

Babbage gépe olyan számításokat tudott végezni, melyben N-t 1-től növelve egyesével egy ilyen polinomnak az eredményét adta meg. 32 jegyű számokkal számolva percenként 33 számot tudott megadni, ami éppen csak gyorsabb volt, mint az akkori legjobb számolók. Ezért nem aratott igazi sikert ez a gép! Szó volt arról, hogy Babbage gépe még a hatodik rendű differenciákat is használta. Ehhez hat, egymáshoz kapcsolódó számolóművet tervezett - 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).

Difference Engine

(Kép eredetije: http://www.computerhistory.org/babbage/)

Első gépterve, a differenciagépként (Difference Engine) 1820-as években ismertté vált készülék szolgált Georg Scheutz (1785-1873) stockholmi ügyvéd és lapkiadó nyomdász munkájának alapjául. Scheutz 1834-ben olvasott az Edinburgh Review-ban Babbage differenciagépéről. 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 különbségek, differenciák összeadására vezeti vissza. Scheutz úgy gondolta, hogy ő is tudna ilyet építeni. 1837-től fiával együtt 15 éven át dolgoztak gépük létrehozásán. Az első működő, de más mechanizmussal elkészült prototípust 1853-ban fejezték be. Ez a gép még csak harmadrendű differenciákat és 15 jegyű számokat kezelt. A gép az I. számú Scheutz differenciálmotor néven vált ismertté és az 1855-ös párizsi világkiállításon aranyérmet nyert. A gép két különálló részből állt, egy számításra és egy nyomtatásra alkalmas mechanizmusból. Ez volt az első olyan számológép, amely nyomtatásban is kiadta az eredményt. Táblázatok és ezek nyomdai nyomókliséi készítésére használtak. 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 be nem fejezett gépek alkotóelemeit a Londoni Tudományos Múzeumban állították ki. 153 évvel megtervezése után az első gépét összeállították az eredeti rajzokhoz hűen Londonban, 2002-ben és a kb. 8000 alkatrészből álló, 5 tonnát nyomó és 11 láb hosszú gép tökéletesen működött.

 

A 2. számú differenciálmotort Bryan Donkin építette meg 1858-ban Edward Scheutz rajzai alapján és évekig használták is a Brit Általános Nyilvántartó Hivatalban az angol népességi táblázatokkal kapcsolatos számításokhoz. Babbage viszont soha nem készítette el gépét, mivel még a differenciagép elkészülte előtt egy teljesen más konstrukción dolgozott.

 


Hazatérve gyógykezeléséből újabb kincstári szubvenciót kért és kapott is 17 ezer fontot, amiből folytatta a gép építését – hozzátéve a saját tőkéjéből 22 ezret. 1833-ban azonban abbahagyja a munkát. Több évnyi huzavona után 1842-ben közli vele az akkori pénzügyminiszter, hogy a tervet a maga részéről halottnak tekinti. Babbage nem is folytatta soha a gép építését. Ahogyan abbahagyta, úgy volt kiállítva az 1862. évi Világkiállításon. Még ma is működőképes.

Ez elvileg egy általános célú számítógép volt. A gép életcéljává vált Babbage-nek. Ő egy univerzális gépet tervezett, melynek egységei: adatbeviteli, eredmény-kiviteli, számolómű és részeredmény-tároló. A beolvasás lyukkártyákról történt volna, valamint tudott volna utasításokat és adatokat tárolni, matematikai műveleteket végrehajtani és adatokat kinyomtatni. Ráadásul a lyukkártyákat vezérlésre is használta volna, közte ötletként megjelent a feltételes elágazás is: egy eredmény 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.

Analytical Engine

(Kép eredetije: http://www-03.ibm.com/ibm/history/exhibits/attic2/attic2_182.html)

Halála után munkáját fia, H. P. Babbage folytatta. Sajnos, ez soha nem készült el. A gép alapötlete merőben különbözött a korai differenciagéptől. Az ötletet az 1805-ben a francia Joseph Marie Jaquart (1752-1834) által bevezetett szövőszék hozta meg. Ezen a szövőszéken a mintát egymás utáni kártyákon lévő lyukak jelentették, melyek alapján a gép fűzte a cérnákat. Ez a mai értelemben vett lyukkártya egyfajta programnak tekinthető, amely gyakorlatilag végtelenszer megismételhető volt. Az analitikus gép maga két részből állt:

  1. A tárolóból, ahol azok a változók helyezkednek el, amelyekkel a művelet végbemegy, valamint más műveletek végeredményei is.

  2. A malomból, amelybe mindig azokat a mennyiségeket visszük be, amelyekkel éppen valamilyen műveletet végzünk. Ennek folytán két kártyacsomag van. Az egyiken a változókat és a számoláshoz szükséges konstansokat visszük be, míg a másikon magát a számolási műveletet. Éppen ezért az analitikus gép rendkívül általános jellegű. Gyakorlatilag bármilyen számolás elvégezhető vele, ha pontosan le tudjuk írni a hozzá szükséges matematikai algoritmust.

Az új gépben, az Analytical Engine-ben ezer tengelyen 50 helyi értékű számoknak megfelelő számkereket szándékozott elhelyezni.

Ada LovelaceA készülék - bonyolultsága miatt - nem valósulhatott meg saját korában, a fia készítette el később a malomrészt, amely a számítások elvégzésére szolgált. A másik fő részt, a tárolót, ahová az adatokat kellett volna bevinni, ez ideig senki sem alkotta meg. Babbage ismerte fel először, hogy a számolásokban a részeredmények tárolására is szükség van. A gép a mozgó kartonszalagon tárolt utasítássort tapogatókarok segítségével olvasta le és így hozta működésbe a malmot és a tárolót. A soha el nem készült gépre Ada Byron, (1815-1852; külön képen – eredeti: http://www.willamette.edu/) Lord Byron költő leánya, a későbbi Lady Lovelace írt programokat. Így őt tekinthetjük az első programozónak. Róla nevezték el az Ada programnyelvet. Ada Byron, Babbage barátjaként, annak elmondásából és egy itáliai előadókörút jegyzeteiből készítette el programterveit és programjait. Zsenialitását mutatja, hogy ezek a programok szinte kivétel nélkül helyesek voltak.

Még egy apróság: Ada Lovelace javasolta Babbage-nek, hogy a gép a nehézkes decimális helyett bináris formában tárolja a számokat, valamint ugyancsak ő találta ki egy utasítás-sorozat többszöri végrehajtatását, a – mai nevén - ciklust.

 

 


 

A XVIII. század közepéig nem létezett olyan egyszerű, gyors és legfőképpen biztos módszer a tengerészek számára, amellyel megállapíthatják tengeri tartózkodási helyük melyik szélességi fok alá esik. Az egyetlen lehetséges és biztos módszer, amely éjjel-nappal jó lenne, a Hold helyzetén alapszik. De az a baj, hogy a Hold helyzetét feltüntető akkori táblázatok számítása rettentő bonyolult volt, hiszen égi kísérőnk mozgását nem csak a Föld, hanem a Nap is befolyásolja. A dolog problematikája miatt rengeteget kellett számolni, tegyük hozzá, hogy kézzel. Ebből következőleg természetesen pontatlanul. Ezt a háromtest-problémát Sir Isaac Newton próbálta meg először igazán megoldani, de a nehézségét jelzi, hogy sem neki, sem azóta senkinek nem sikerült ez. A Hold pontos táblázataira pedig mindig szükség volt. A nagy hajósnemzetek (Nagy-Britannia, Hollandia, Franciaország, ...) kereskedőinek nagy bevétele múlt a precíz navigáción. A legtöbb kormány jelentős díjat ki is tűzött a táblázatok pontosítására. 1746-ban Euler publikált néhány, nem kielégítő pontosságú táblázatot. 1747-ben ugyanazon a napon nyújtott be Clairaut és d'Alambert, mindkettő a Hold elméletét tárgyalta. A két dolgozat zavaros pontjait 1749-ben tisztázta Clairaut. Ő nyerte el a szentpétervári Akadémia nagydíját 1752-ben. 1754-ben mindketten publikálták a Hold elméletének (javított) második kiadását.

Közben Euler is kiadta a maga "Lunar Theory" című Hold-elméletét, amit a göttingeni Johann Tobias Mayer hasonlított össze a megfigyelésekkel és így már félfoknyi pontossággal lehetett megállapítani a földrajzi szélességet (1755-ben). 1756-ban Nevil Maskelyne (1732-1811), az ötödik Királyi Csillagász nekiállt, hogy elkészítse a brit tengerészeti és csillagászati évkönyvet a greenwichi Királyi Csillagvizsgáló Intézeten áthaladó délkörre számítva. (British Nautical Almanac and Astronomical Ephemeris for the Meridian of the Royal Observatory at Greenwich) Mayer táblázatain alapulva Maskelyne emberei használható csillagászati évkönyvet állítottak össze, amely a Hold pozícióit tünteti fel, minden délben és éjfélkor. Az évkönyv első kiadása 1767-ben volt, de már 1811-ben, Maskelyne halálakor a könyv tele volt hibákkal. A helyzet annyira súlyos volt, hogy 1830-ban a Brit Tengernagyi Hivatal fölkéri a Királyi Csillagászati Társaságot, hogy teremtsen rendet az összegabalyodott táblázatokban. Ez meg is történik, hiszen az 1834-ben kiadott és jelentősen javított Nautical Almanach (Tengerészeti Almanach) egy elég precíz csillagászati évkönyv. Az előző fejezetben említett Babbage munkássága is erre az időszakra esett. Ha valaha elkészül a gépe, akkor jelentős segítségére lehetett volna a kor matematikusainak.

George BooleA későbbiekben meghatározó szerepet töltött be George Boole (1815-1864) munkája, amely 1847-ben jelent meg "A logika matematikai analízise" címmel. A kortársak tökéletesen értetlenül fogadták a művet, csak századunk közepe óta alkalmazzák a benne leírt elméleti alapot, tehát a Boole-algebrát a számítógépek logikai tervezéséhez és programozásához. (Jobbra: George Boole – Kép eredetije: http://georgeboole.net/)

Munkásságára csak kb. 70 évvel halála után akadt rá véletlenül Claude Shannon, aki a University of Michigan-en filozófiát tanult. 1937-ben Shannon diplomamunkájában megmutatta, hogy a Boole-algebrát lehetne az elektromechanikus rendszerek és relék működésének optimalizálásához. Későbbiekben a Boole-algebra a modern digitális áramkörök tervezésének nélkülözhetetlen alapeleme lett.

 

Felhasznált irodalom: