A programozás alapfogalmai
A memóriában lévõ programot a processzor (CPU) értelmezi és végrehajtja (a program lefut). Ez a program gépi kódú, a processzor számára közvetlenül feldolgozható. A gépi kód byte-ok sorozata, és ezért az ember számára nehezen érthetõ. A gépi kód alacsony szintû programnyelv.
Az assembly programnyelv úgy keletkezik, hogy a gépi kódú utasításokat néhány (többnyire 3) betûs rövidítéssel, úgynevezett mnemonikkal helyettesítjük. Példa:
gépi kód assembly jelentése
187,7,0 MOV AX,7 az A regiszterbe 7-et tölt
144,9,144 MOV [9009],AX A tartalmát a 9*4096+9-edik memóriacímre másolja
187,8,0 MOV AX,8 A-ba 8-at tölt
5,9,144 ADD AX,9009 A-hoz hozzáadja a 9*4096+9-ik memóriacím tartalmát
stb...
Ez az nyelv egy kicsit megkönnyíti a gépi kódú programozást, de a CPU által elvégzendõ feladatot ugyanúgy vissza kell vezetnünk a legalapvetõbb tevékenységekre (összeadás, adatok mozgatása a regiszterek és a memóriacímek között, a program folytatása másik memóriacímen stb.), mint a gépi kódnál.
A magas szintû programozási nyelvek megengedik az emberközelibb utasítások használatát, így sokkal érthetõbbek és könnyebben kezelhetõek a gépi kódnál. Ezek használatához már nem kell ismernünk a processzor mûködését, és magára az elvégzendõ feladatra összpontosíthatunk. Például
PRINT 7+8
kiírja a képernyõre a számítás eredményét. A magas szintû nyelven írt programszöveget forráskódnak nevezzük. A processzor viszont nem érti ezeket a nyelveket, valahogyan gondoskodni kell a forráskód fordításáról.
Az interpreter (értelmezõ) típusú nyelvek esetén a gépen fut egy gépi kódú program, mely értelmezi és végrehajtja a forráskód utasításait.
A compiler (fordító) típusú nyelveknél egy fordítóprogram gépi kódra fordítja a forráskódot, így keletkezik a tárgykód. A tárgykódot a CPU ezután már közvetlenül végrehajthatja.
A compiler elõnye az interpreterhez képest, hogy míg a forráskód utasításonkénti értelmezése idõigényes, és szükséges hozzá az interpreter program jelenléte a memóriában, a lefordított tárgykód minden segítség nélkül futtatható, tehát gyors és memóriatakarékos.
Az interpreter elõnye viszont, hogy futás közben nyomon követhetjük, hogy a forrásprogram melyik utasítását dolgozza fel az értelmezõ, a programot megállíthatjuk, folytathatjuk, mûködés közben beavatkozhatunk, így a hibakeresés is könnyebb.
Léteznek általános és speciális programnyelvek. Elõbbiekkel tetszõleges programozási feladat megoldható, utóbbiakat egy bizonyos feladat hatékony elvégzésére készítették. Természetesen elég lenne egyetlen általános programozási nyelvet használni, de azok a különleges feladatokat nem végzik el olyan gyorsan és egyszerûen, mint a megfelelõ speciális programnyelv. Az amatõr nyelveken egyszerû a programozás, a professzionális nyelveken nehezebb, viszont a kész program minõsége jobb lehet.
Végül néhány nyelv jellemzése:
Basic amatõr általános interpreter
Pascal amatõr általános compiler
C profi általános compiler
LOGO amatõr speciális interpreter
DOS batch speciális interpreter
Prolog profi speciális interpreter

Elemi (egyszeru) adattípusok
Logikai (boolean) típus
felveheto értékek ábrázolás
false (hamis) 0
true (igaz) nem 0, legtöbbször 1
muveletek
tagadás (negálás, invertálás) not
és and
vagy or
kizáró vagy xor

Vezérlési szerkezetek
Elágazás (if)
A leggyakrabban használt elágazás az "if" (ha-különben típusú elágazás):
ha (feltétel)
utasítások
különben
utasítások

Ciklusok
Hátultesztelos ciklus (do-while)
Eloször végrehajtja a ciklusmagban lévo utasításokat, majd megvizsgálja a feltételt (bennmaradási feltétel), és ha ez igaz, akkor újra végrehajtja a ciklustörzset. Vegyük észre, hogy ha ez az elso lefutásnál már hamis, attól még a cikosmag mindenképp lefut egyszer
ciklus
ciklusmag
amíg (feltétel)

Elöltesztelos ciklus (while)
Eloször megvizsgálja a feltételt (belépési feltétel), és csak akkor hajtja végre a ciklusmagban lévo utasításokat, ha a feltétel igaz. Vegyük észre, hogy ha kiinduláskor már hamis a belépési feltétel, akkor egyszer sem fut le a ciklustörzs.
ciklus amíg (feltétel)
ciklusmag

For ciklus
Az elöltesztelos ciklus egy speciális esete, amikor a megadott ciklusváltozó (gyakran i-nek nevezik) értéke minden lépés után automatikusan no eggyel, a kezdoértéktol (k.é.) a végértékig (v.é.).
ciklus i = k.é. tol v.é. -ig
ciklusmag
amíg (feltétel)