Programozási nyelv

A Wikipédiából, a szabad lexikonból.

A programozási nyelv a számítástechnikában használt olyan, az ember által olvasható és értelmezhető utasítások sorozata, amivel közvetlenül, vagy közvetve (pl.: gépi kódra fordítás után) közölhetjük a számítógéppel egy adott feladat elvégzésének módját.

A programozási nyelveket kategóriák szerinti csoportosításban itt találhatóak, itt pedig betűrendben felsorolva.

Tartalomjegyzék

[szerkesztés] A programozási nyelvek története

Elterjedt nézet, hogy Charles Babbage készítette az első számítógép-szerű gépet, amire különböző programokat írt (az assemblyvel egyenértékben) Ada Lovelace.

Alan Turing felhasználta az elméleti konstrukciót a Turing-géphez, amely általános alapelveiben már úgy viselkedik, mint egy mai modern számítógép, összhangban az input, alacsony szintű programmal.

Az 1940-es években, amikor az első számítógépet megalkották, programozókra volt szükség, akik a saját kezükkel működtették a gépeket. Ebben az időben a számítógépek hihetetlenül nagy méretűek és drágák voltak. A robbanásszerű elektrotechnikai fejlődés a 20. század végén elősegítette a felhasználóbarát számítógépek elterjedését. Csak Konrad Zuse képzelte el az általa kifejlesztett Plankalkül programozási nyelv használatát úgy, ahogy azokat napjainkban használjuk problémáink megoldására.

Az ezt követő fejlődés (tranzisztorok, integrált áramkörök és chipek) a számítógépeket sokkal megbízhatóbbá, könnyebben kezelhetővé tette, s a legkülönbözőbb programozási nyelvek is futtathatóvá váltak. Ez vezetett az exponenciálisan növekvő fejlődéshez, amely az Internetet, a mindenütt előforduló számítógépeket eredményezte, és megnövelte a hozzáférhetőséget olyan programozási nyelvekhez, mint például a Python, a Visual Basic stb.

Ahogyan a számítógépek ára drasztikusan csökkent, úgy nőtt a programok komplexitása és jelentősége, ami magával hozta azt, hogy a számítógép-időnél kétségtelenül sokkal fontosabbá vált a fejlesztési idő.

Az újonnan beépített, vizuális fejlesztői környezet nyilvánvaló fejlődést hozott. Csökkentették az idő-, pénz- (és idegesség-) ráfordítást. A képernyő területei, melyek végrehajtják a programvezérlést, gyakran interaktívan átrendezhetőek. A kód-részleteket egy egérkattintással is előhívhatjuk. A munkát tehát előre gyártott komponensek és újra felhasználható kódokkal operáló eljáráskönyvtár teszik könnyebbé.

A korszerű nyelvek új fejlesztéseket tartalmaznak, mint például felhasználói jogok meghatározása; szabadon variálható, testhezálló telepítés és kinézet.

Az objektum-orientált módszertan képes lényegesen csökkenteni a programok elkészülési idejét, kódjának olvashatóságát, ugyanakkor (mint minden újabb absztakciós szint) csökkenti azok hatékonyságát.

Lásd még: programozási paradigmák.

[szerkesztés] Programozási nyelvek listája

[szerkesztés] Gépi kód

A gépi kód valójában nem nyelv, mivel az a gép számára közvetlenül értelmezhető adatsort jelenti. A gépi kódhoz legközelebb álló nyelv az assembly nyelv. Ha egy assembly vagy mnemonik nyelv és az általa előállított gépi kód között egy-az-egy megfeleltetés van, akkor mondhatjuk, hogy az adott nyelv „gépi kód szintű”.

[szerkesztés] Assembly

Lásd: Assembly programozási nyelv

A gépi kódhoz, vagyis az adott számítógép saját nyelvéhez legközelebb álló nyelveket nevezzük assembly nyelveknek: ezen a nyelven a legnehezebb programot írni, mert azt teljesen a gép architektúrájához alakítva, gépi logika szerint kell elkészíteni. Cserébe az assembly nyelven írt programok a leggyorsabbak.

Az assembly nyelven írt programot gépi kódra az „assembler” (fordítóprogram) fordítja le. (Ebből látható, hogy igazából az assembly is egy fordított nyelv, de mégsem soroljuk a fordított nyelvek közé, mivel a legtöbb esetben a „fordított nyelvek” az adott nyelvről assembly-re fordítanak (belsőleg), és utána azt alakítják át gépi kóddá.)

Minden egyes processzor-családnak saját assembly nyelve van (vagy nyelvei vannak).


[szerkesztés] Fordított nyelvek

A compiler (fordító) gépi kódú programot állít elő, így azt az operációs rendszer már közvetlenül képes futtatni. DOS/Windows architektúrákon az ilyen programok indítása egy COM (command - parancs) vagy EXE (executable – végrehajtható) kiterjesztésű fájl betöltésével kezdődik.

A Java és C# kilóg a sorból, mert a fordítóprogram nem gépi kódra, hanem egy köztes kódra, például Java virtuális gép (JVM) bájtkódjára fordít. Ebből a kódból aztán szükség szerint Java gép JIT-fordítója állít elő gépikódot a program futtatása közben.

Az RPG hasonló módon kilóg a sorból, mivel az mint a legrégebbi programozási nyelv, eredetileg 1890-ben (amerikai népszámláláson) kártyavezérelt ciklusokkal működött. Ezt a ciklusvezérelt voltát, mint jellegzetességet mind a mai napig megtartotta.

[szerkesztés] Interpretált nyelvek

Az interpreter (értelmező) viszont nem állít elő gépi kódot, a beírt kód végrehajtása lényegében a kód utasításonkénti értelmezésével történik. Ebben az esetben a kód futtatásához tehát egy külön futtató környezet szükséges, ami gyakran azonos a fejlesztői környezettel.

[szerkesztés] Bájtkód alapú interpretált nyelvek

Egyes interpretált nyelveknél (pl. Perl, Python) a fordító először egy átmeneti, a forrásszövegnél hatékonyabb kódot állít elő, ami a soronkénti értelmezéshez képest hatékonyabb szintaktikai ellenőrzést, kisebb kódméretet és a „hagyományos” interpretált nyelvekhez képest némi sebességnövekedést eredményez.


A Python esetében a bájtkód a Javahoz hasonlóan külön fájlban tárolódik és azt a futtató környezet hasonló módon végre is tudja hajtani.

[szerkesztés] Lásd még