6.2. A program

iDevice ikon

A logikai szinten megfogalmazott algoritmust később a végrehajtó személyére kell szabni. Ember és gép esetében ez ugyanazt jelenti: olyan nyelvre és jelrendszerre kell átalakítani, amelyet az megért. A számítógépek esetében ez a processzor által értelmezhető gépi kódú program.

A program tehát gépi kódban tartalmazza azokat az utasításokat, műveleteket, amelyeket a processzornak el kell végeznie.

A program tehát a számítógép számára érthető utasítások sorozata. Ezek az utasítások, általában adatok felhasználásával, egy feladat végrehajtását célozzák. A program képes (a megfelelő utasítások segítségével) a szükséges adatok bevitelére, a kapott adatok feldolgozására, majd az eredmények ember számára érthető formában való közlésére. Ebben a folyamatban a program a számítógép hardvereszközeit használja fel: adatbevitelhez pl. a billentyűzetet, adattároláshoz a memóriát vagy lemezeket, eredményközléshez a képernyőt vagy a nyomtatót.

Régen a programozók közvetlenül gépi kódba írták át az algoritmusokat. Például Az alábbi gépi nyelvű utasítások egy (az Strg paraméterben megadott) karaktersorozat nagybetűssé alakítását végzik el:

($C4/$BE/Strg/$26/$8A/$0D/$FE/$C1/$FE/$C9/$74/$13/$47/$26/$80/$3D/$61/$72/$F5/$26/$80/$3D/$7A/$77/$EF/$26/$80/$2D/$20/$EB/$E9);

Ezek a kódok az ember számára olvashatatlanok, megértésük még a szakembereknek is nehézséget okoz. Ma már az emberi nyelvhez, gondolkodásmódhoz sokkal közelebb álló, ún. magas szintű programozási nyelveket használunk - ebben készülnek a forrásprogramok.

Az alábbi Pascal nyelvű kód ugyanazt írja le, mint az előző gépi kód - de teljesen egyértelmű lehet bárki számára, aki egy kicsit is tud angolul és ismeri a műveleteket:

i:=1;                        {az i számláló legyen 1}

while i <= Length(Strg) do   {amíg a számláló kisebb, mint a karakterek száma}

begin

    Strg[i] := UpCase(Strg[i]); {az i-dik karakter legyen önmaga nagybetűs megfelelője}

    i:=i+1;                    {növeljük a számlálót}

end;

A magas szintű programozási nyelvek használatával azonban felmerül egy probléma: a számítógép ezt a „beszédes" kódot nem érti meg - tehát ahhoz, hogy a program futhasson, le kell fordítani a gép nyelvére, a gépi kódra. Ezt a fordítást speciális programok, a fordítóprogramok végzik.

Például a számítógépünk merevlemezén található .exe, .com vagy .dll (Windows) jelzéssel ellátott  állományok ilyen gépi kódra fordított programokat tartalmaznak.

Amikor egy programot futtatunk, az operációs rendszer betölti azt a gép memóriájába, majd a processzor elkezdi végrehajtani az abban található utasításokat - ezeknek megfelelően vezérelve a kívánt hardvereszközöket.