Az átalakítás

Mit? Mi történik ezekkel az adatokkal a gépben? A gép az adatokon műveleteket hajt végre. Ezeket a műveleteket, azok sorrendjét az ember által készített program határozza meg. A legegyszerűbb művelet az összeadás (ill. kivonás). A számok összeadását nem kell magyarázni, de mit jelent a betűk összeadása? (Nyilvánvaló, hogy két szó összeadása nem ugyanolyan, mint két szám összeadása. Pl. 2+3 = 3+2, de autógumi ≠ gumiautó.) A szöveggel végzett műveletek világosabbá válnak, ha tudjuk, hogy a számítógép képes két adatról megállapítani, hogy melyik kisebb vagy nagyobb, mint a másik, ill. egyenlők-e egymással. Ez a művelet lehetővé teszi, hogy egy névsort a számítógép szoros ábécébe rendezzen (a megfelelő kódok szerint ugyanis a < b, b < c és i.t.); vagy megállapítsa, hogy egy adattárban szerepel-e egy meghatározott szó. Két szó ugyanis akkor, és csakis akkor egyenlő egymással, ha minden egyes betűje megegyezik.

A számítógép lényegében ezekből a műveletekből építi fel teljes műveletrendszerét: a szorzást, a hatványozást, vagy éppen a szögfüggvények számítását. Az átlag felhasználót nem nagyon érdekli, hogy mindezt hogyan, milyen belső szerkezettel, logikával hajtja végre a gép. Legfeljebb csak az érdekes számukra, hogy mindezek a műveletek hihetetlen gyorsasággal mennek végbe.

Hogyan? Olyannak képzelhetjük el a számítógép tárát (memóriáját) mint egy óriási fiókos szekrényt, amelyben milliónyi fiók van. Minden fióknak van egy címkéje. Az egyes programutasítások közlik a géppel, hogy mely fiókokból vegyen elő adatokat, milyen műveleteket hajtson velük végre, és az eredményt melyik fiókba rakja le. Ilyen elemi utasításokból épül fel a legbonyolultabb programrendszer is. A gép ezeket az utasításokat a maga speciális 2-es számrendszerben kifejezhető kódjával (ún. gépi programban) tárolja. Az átlag felhasználó számára elegendő a könnyen megtanulható, az emberi nyelvhez közel álló utasításrendszer, pl. valamely programnyelv ismerete. Az így megírt programokat a gép lefordítja a saját nyelvére; ebből következik, hogy csak olyan programnyelveket lehet használni, amelyhez az adott gépben fordítóprogram is van. Nemcsak a gépek, de a programozás is állandóan fejlődik. Naiv elképzelés lenne azt hinni, hogy a ma divatos programozási nyelvek hosszú életűek lesznek. Várható, hogy a jövőben újabb, a jelenleginél hatékonyabb nyelvek születnek. Aki már egyszer megismerkedett egy programnyelvvel és annak logikáját érti, az már viszonylag könnyen elsajátítja az újabb változatokat, nyelveket is. Várható azonban, hogy a gépek programozása teljesen átalakul, és a jövőben nem lesz szükség a programok szöveges elkészítésére. Már ma is vannak rajzzal és/vagy hanggal vezérelhető gépek. A lényegen azonban ez sem változtat: a gép továbbra is algoritmikus gép lesz, amely azt, és csak azt hajtja végre, amit az ember előzetesen beprogramozott.