Programok készítése és futtatása
Integrált fejlesztői környezet (IDE) tartalmaz: szövegszerkesztőt a program forráskódjának szerkesztésére, fordítóprogramot vagy értelmezőt, nyomkövetési, grafikusfelület-szerkesztési és verziókezelési lehetőségeket, kiegészítő lehet pl. dokumentálást segítő Egy IDE több programozási nyelvet is kezelhet, pl.: Microsoft Visual Studio.NET Visual C#, Visual Basic NetBeans Java, PHP
Fordítóprogram (Compiler) A fordítóprogram olyan számítógépes program, amely valamely programozási nyelven írt programot képes másik nyelv szabályaira lefordítani, például gépi kódra, köztes kódra, vagy egy másik programozási nyelv kódjára. forrásprogram forrásnyelven írt program tárgynyelven írt program (assembly) gépi kódú program (natív kód, nem változtatható) feloldatlan memóriacímek több program összeépíthető F ORDÍTÓ PROGRAM P ROGRAMSZERKESZTŐ
A fordítás menete 1. fázis: lefordítja a forráskódot egy közbeeső kódra (tárgynyelvű program) Lexikális elemzés: A forráskód felbontása a szintaktikai elemzőnek értelmezhető szimbólumokká. Szintaktikai elemzés: „nyelvhelyességi vizsgálat” Szemantikai elemzés: a programkód értelmességének vizsgálata 2. fázis: gépi kódú programot állít elő Optimalizálás (opcionális) Kódgenerálás: a mnemonikok átfordítása gépi kóddá, a memóriacímek feloldása és a kiszámított értékek behelyettesítése
Előnyei az elkészült program önmagában működőképes az adatok elkülönülnek a forrásnyelvi programtól egyszeri fordítás után többször más-más adatokkal futtatható gyors
Változatok Gépi kódra (natív-kódra) fordítók Több platformra fordítók Magas szintű nyelvről másik magas szintű nyelvre fordítók
Fordítóval megvalósított programozási nyelvek Példa: Pascal C Basic
Értelmező program (Interpreter) Az értelmező program olyan számítógépes program, amely képes arra, hogy az általa felismert nyelven megfogalmazott utasításokat bemenő adatként kezelje a futtató gép saját utasításkészletének megfelelő utasítások sorozatává alakítsa át majd ezeket az utasítássorozatokat azonnal futtassa
ElőnyeiHátrányai hiba esetén azonnal visszajelez, könnyebb javítás csak az értelmezővel együtt futtatható (pl. szerver oldali értelmező) csak az értelmezővel együtt futtatható a program az adatok nem különülnek el a forrásnyelvi programtól minden végrehajtásnál újból értelmezi a programot lassú
Értelmezővel megvalósított programozási nyelvek Példa: JavaScript Logo Visual Basic
Értelmező program (Interpreter) + előfordító 1. fázis: egy tömör, mindenféle felesleges résztől mentes köztes kódot (bytecode) hoz létre, kifejezéseket kiértékeléshez meghatározott formára hozza konstansokat az értékükkel helyettesíti utasításokhoz kódot rendel 2. fázis: a bájtkódot utasításonként végrehajtja A bájtkód ~ virtuális gépi kód sokkal könnyebb lefordítani gépi kódra, mint az eredeti forráskódot gyorsabb
Virtuális gépi kódra fordított programozási nyelvek Példa: Java PHP
Java virtuális gép A Java programozási nyelvhez kifejlesztett virtuális gép Független a Java programozási nyelvtől és más programozási nyelveket is fejlesztettek ki rá. Számos operációs rendszerre, és számos hardver platformra létezik. Feladata a Java bájtkód futtatása A Java bájtkód általában Java nyelvű forrás fordításával jön létre, de léteznek olyan fordítók, amelyek más programnyelvek (pl. Ada) forrásait fordítják Java bájtkódra.
A program futtatása Fordított program esetén exe fájl elindítása után a processzor végrehajtja az utasításokat Értelmezős program, előfordítós értelmezés esetén elindítás után a virtuális gép a főmodult indítja el, a többi modul hívása ebből történik, a tényleges futtatás előtt még a forráskód / bájtkód fordítása/értelmezése szükséges (utasításonként)