Az interpreter (értelmezo) 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 elonye az interpreterhez képest, hogy míg a forráskód utasításonkénti értelmezése idoigé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 elonye viszont, hogy futás közben nyomon követhetjük, hogy a forrásprogram melyik utasítását dolgozza fel az értelmezo, a programot megállíthatjuk, folytathatjuk, muködés közben beavatkozhatunk, így a hibakeresés is könnyebb.
Léteznek általános és speciális programnyelvek. Elobbiekkel tetszoleges 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 egyszeruen, mint a megfelelo speciális programnyelv. Az amator nyelveken egyszeru a programozás, a professzionális nyelveken nehezebb, viszont a kész program minosége jobb lehet.
Végül néhány nyelv jellemzése:
Basic     amator általános interpreter
Pascal    amator általános compiler
C         profi  általános compiler
DOS batch        speciális interpreter
