2017. december 19., kedd

A PROGRAM BELSŐ UNIVERZUMA

QUBIT BLOG
Szerző: KÁLMÁN LÁSZLÓ
2017.12.18.


Már említettem, hogy amikor programozunk, akkor egy elképzelt univerzumban mozgunk, ott hozunk létre mindenféle lényeket. Talán az egyetlen nehézsége az egész folyamatnak, hogy ezt az univerzumot a folyamat során nem látjuk, de muszáj elképzelnünk. Például tegyük fel, hogy olyan programot akarunk írni, amiben két képzeletbeli játékos egymással sakkozik. Akkor a programnak létre kell hoznia a két játékost, a maguk tudásával és képességeivel, és aztán felváltva megkérni őket, hogy lépjenek a képzeletbeli sakktáblán. De mi, akik mindezt megalkotjuk, ebből semmit sem látunk, csak adatokat kezelünk valamilyen módon, és ezek az adatok határoznak meg mindent, a tudásukat és képességeiket, meg az eseményeket, amik majd a program futásakor megtörténnek.

Hol lakik a program?

Hol laknak ezek a nem látható lények? Természetesen majd a számítógépben fognak lakni, amikor a programot elindítjuk, közelebbről a számítógép memóriájában, amit egy nagy adattároló térnek fogunk elképzelni (bár a valóságban ez is bonyolultabb, több részből tevődik össze). A memóriának az a lényege, hogy a programok töltik meg adatokkal, és a programok tudják kiolvasni belőle az adatokat, és amikor egy program befejezi a futását, akkor a hozzá tartozó adatok végleg eltűnnek.

Persze tárolhatunk adatokat adathordozókon is (merevlemezen stb.), és az ilyen adatok a program futása, sőt a gép kikapcsolása után is megmaradhatnak, de ezt egyelőre hagyjuk, tekintsük extra lehetőségnek, amit majd szintén fogunk használni. Bármilyen képzeletbeli lény, amit megalkotunk, és annak bármilyen része valamilyen adatnak fog megfelelni valahol a gép memóriájában. Úgy is mondhatjuk, hogy ezek az adatok ábrázolják (reprezentálják) a lényeinket. Legalább két dolgot tudnunk kell róluk, hogy használni tudjuk őket: először is azt, hogy hol vannak, hogyan találhatjuk meg őket, másodszor pedig azt, hogy hogyan ábrázolják a lényeket, hogyan kell értelmeznünk őket.

Ami a tárolás helyét illeti, az a valóságban egy címnek felel meg (úgy képzelhetjük el, mint egy sorszám, mondjuk egy rekesz vagy postafiók száma), de a programokban mi általában valamilyen nevet, elnevezést fogunk használni minden adatunk azonosítására, és a neveket mi fogjuk adni nekik. Ami pedig az ábrázolás módját illeti, azt is nekünk kell kitalálnunk. Általában elég sok fejtörésbe szokott kerülni, hogy egy-egy képzeletbeli lény praktikus, később minden szempontból jól használható ábrázolását kitaláljuk.

A belső univerzum persze nemcsak a memóriából (és a benne tárolt lényeinkből) áll. Talán a legfontosabb, hogy ha körbenézünk, találunk mindenféle perifériát – így hívnak mindent, ami a külvilággal kapcsolatban van: billentyűzet, képernyő, adathordozók stb. Ezekkel muszáj időnként kapcsolatba lépni, hogy legyen egyáltalán valami külső jele annak, amit a programunk csinál (ehhez ki kell bocsátania mindenféle jeleket), illetve hogy kívülről befolyásolni tudjuk a működését (ehhez meg kintről be kell olvasnia mindenféle jeleket). És a memórián meg a perifériákon kívül is sok minden van még a számítógépben, bár ezekkel közvetlenül csak ritkán lesz dolgunk. Például van benne egy operációs rendszer. Ez valójában egy csomó program, amit nem mi írtunk, de ezek annyira fontos és hasznos feladatokat látnak el, hogy nélkülük a mi programunk se tudna futni. Az a jó bennük, hogy szinte észrevétlenül teljesítik minden kívánságunkat. Például az ő közvetítésükkel tudunk kapcsolatba lépni a perifériákkal (meg magával a processzorral is, ami az összes szükséges számítást elvégzi).

Hogyan ábrázolható a pikk ász?

Nincsenek megjegyzések:

Megjegyzés küldése

Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.