Számítások programozása

Nagyon egyszerűnek tűnt így minden. A vezérlődobokkal játékokat, kalapácsokat; a lyukkártyákkal szövőgépet, számlálószerkezeteket lehetett irányítani; vagyis mindent, aminek algoritmusa van. Algoritmusa a számításoknak is van, tehát azok is irányíthatók, csak a vezérlőszervek nem mechanikus vagy elektromechanikus egységek, hanem elektroncsövek. Mivel a vezérlőkártyák csak igen - nem utasításokat ismertek, ezért a lyukkártyákkal irányított számításokat is ilyen igen - nem utasítások sorozatára kellett felbontani. Az igen nem a számok körében az 1-nek és a 0-nak felelltethető) meg. Valóban, a számítógépeket a 0 és 1 értékek sorozatával kell irányítani, és az adatokat is ezzel ábrázolják. Lényegében a mai számítógépek is csak ezt tudják; ezért mondjuk azt, hogy a számítógépek "természetes" nyelve a 2-es (ún. bináris) számrendszer. Ennek egysége (az angol binary digit rövidítéséből) a bit. A számítástechnika fejlesztői hamar rájöttek arra, hogy egyszerűbb megtanítani a számítógépet egy, az emberhez közel álló nyelv megértésére, mint százezreket megtanítani a bináris számrendszerrel leírható programozásra.

De azért ejtsünk néhány szót a gép "nyelvéről" is! Azt ma már az általános iskolás is megtanulja, hogyan lehet a tízes számrendszer számait kettes számrendszerben ábrázolni. Csak annyit kell tudni, hogy a számjegyeknek helyértékük is van. A helyérték az alapszám megfelelő hatványait jelenti. Pl. a tízes számrendszerben a tizedesponttól balra 100, 101, 102,…, jobbra 10-1, 10-2,

Bármely más számrendszerben hasonlóan számolnak. Emlékeztetőül: a babiloniak 60-as számrendszert használtak, így az egyes számjegyeket rendre 1, 60, 3600 (= 602), 216 000 (= 603), … helyértékekkel szorozva értelmezték. A kettes számrendszerben a helyértékek 20, 21, 22, 23,…, ill. a 2-1, 2-2, 2-3,…, így pl. a tízes számrendszerbeli 9 a kettes számrendszerben: 20+23, vagyis 1001. Ezzel a mechanikus számológépekben használatos bonyolult bütyökbeállításnál lényegesen egyszerűbben lehet számokat ábrázolni. De nemcsak a számokat, hanem a betűket is. A telexszalagon 5 lyuk kombinációjával bármely betű kódját egyértelműen megadhatjuk.

Neumann János tanácsára azonban nemcsak az adatokat, hanem a programokat is ugyanilyen alakban tárolják a gépben. Természetesen ez az "ugyanilyen alak" azt jelenti, hogy a betűk kódjaihoz hasonlóan az utasításokat is valamilyen (kettes számrendszerbeli) számmal helyettesítik. Pl. az 1001 jelenthetné nemcsak a 9-et, hanem az I betűt, vagy azt, hogy a következő két számot össze kell szorozni.

A valóságban több helyérték is van egy-egy gépi "számban" (úgy mondják: rekeszben). Külön neve van a 8 bit hosszúságú számnak: ez a byte. De vannak 12, 16, sőt 32 bit hosszúságú számokkal dolgozó gépek is. Persze egy-egy rekesz tartalma bármilyen információ lehet (betű vagy akár képpont is), amit számokkal kódolni tudunk. Az egy rekeszben levő bitsorozatot gépi szónak nevezzük.