Programozási nyelvek csoportosítása

Működés szerint

Procedurális nyelv, amelyben a programozó adja meg az utasítások végrehajtásának sorrendjét és mikéntjét. Bármely adatszerkezeten bármely nyelvi utasítás végrehajtható a szintaktikai szabályoknak megfelelően.

Objektumorientált nyelv, amelyben az adatokat és a rajtuk végrehajtható utasításokat egy egységként kezeljük. A programozó korlátozva van abban, hogy milyen utasításokat hajthat végre az adatokon.

Eseményvezérelt nyelv, amely már nem lineáris szerkezetű, az utasítás végrehajtása az objektumhoz tartozó eseményhez kötődik (az utasítás végrehajtás során a programozó korlátozva van abban, hogy hogyan hajtathatja végre azt).

Szerkezet szerint

Az imperatív (utasításszerkezetű) nyelvek alapeszközei az utasítások és a változók. A program szövege utasítássorozat, minden utasítás mögött gépi kód áll. Minden program utasítássorozat, amely mögött több gépi utasítás áll. Kötődnek a Neumann-architektúrához, általában fordítóprogramosak. Algoritmikus nyelvek, a programban azt az algoritmust írom le, amelyet a gép végrehajt, és a probléma megoldása így születik meg. A program a hatását a tár egyes területein lévő értékeken fejti ki.

A deklaratív (leírásjellegű) nyelveknél nincs utasításfogalom, a Neumann architektúrától távol áll. Nem algoritmikusak, a programban csak a problémát fogalmazom meg, a megoldást nem, az algoritmus a rendszerbe van beépítve. A tárhoz a programozónak kevés köze van, nem feladata a tár egyes részeinek módosítása.

Létrehozott kód alapján.

Compileres technika

1. Forrásprogram megírása, szerkesztése egy szövegszerkesztővel
2. Forrásprogram lefordítása a fordítóprogram segítségével eredménye a tárgykód
3. Gépi kódú futtatható állomány létrehozása a kapcsolatszerkesztő segítségével
4. Program futtatása a betöltő segítségével, hibakeresés

Ahhoz, hogy a számítógépet céljainknak megfelelően tudjuk használni, programot kell írnunk. Ehhez általában valamilyen szövegszerkesztőt használunk. A megírt programszöveget forrásprogramnak nevezzük. Ahhoz, hogy a programot megértessük a géppel, a forrásprogramot le kell fordítani a gép számára érthető formára. A fordítóprogram a forrásprogramot ún. tárgyprogrammá vagy tárgykóddá alakítja át, amely már gépi kódú program. Szükség lehet egyéb programrészekkel való szerkesztésre, illetve el kell látni a futtatáshoz szükséges információkkal. A szintaktikai hibák a fordításnál, a szemantikai hibák a program futása alatt (vagy egyáltalán nem) derülnek ki. Csak szintaktikailag helyes szövegnek van tárgykódja. A szerkesztőprogram készíti a futtatható programot, a betöltő feladata a futtatható program betöltése a tárba és elindítása.

Interpreteres technika

Néhány nyelvhez használható interpreter (értelmezőprogram). Ez nem állít elő tárgykódot, hanem magát a forrásprogramot hajtja végre utasításonként. Nem képződik tárgykód, nincs szükség kapcsolatszerkesztésre, de minden futtatáskor újra kell értelmezni a forrásprogramot, utasításonként. A forrásszöveget elemei szerint értelmezi, az értelmezés után rögtön az eredményt szolgáltatja. Hátránya, hogy tárgykód hiányában állandóan kiértékel (pl. ciklusoknál), és előfordulhat, hogy az esetleges hibák helyére a tesztelés ideje alatt egyáltalán nem kerül a vezérlés (pl. elágazásoknál), tehát egyes szintaktikai hibák rejtve maradhatnak.

Jellemzői:
– Az értelmezőnek mindig benn kell lennie a memóriában >> rossz
memória-kihasználás.
– A programokat utasításonként értelmezi és hajtja végre >> lassú
végrehajtás.
– Párbeszédes munka >> könnyebb programfejlesztés.