Kezdőoldal » Számítástechnika » Programozás » Programozás szempontjából mit...

Programozás szempontjából mit jelent a fordító, fordítás?

Figyelt kérdés
2016. aug. 30. 07:50
 1/3 anonim ***** válasza:

Fordítás: a forráskód átalakítása a rendszer számára közvetlenül értelmezhető (általában gépi kódú) formára.

Fordító: az a program, ami a fordítást végzi.

2016. aug. 30. 07:56
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

A kódod által reprezentált feladatokat operációs rendszer függő környezetbe kell helyezni. Ahhoz, hogy lefusson ugyanaz a forráskód pl linux-on és windowson, kell egy-egy fordító egység, ami "lefordítja" az adott rendszer nyelvére a programod utasításait.


Ezzel szemben vannak olyan programok, amik fordítás nélkül képesek értelmezni a tényleges forráskódot, mint a script nyelvek.

2016. aug. 30. 10:39
Hasznos számodra ez a válasz?
 3/3 2*Sü ***** válasza:

A processzor pár száz elemi utasítást ismer. Pl. beolvasni a memóriából egy bájtot egy regiszterbe – ami kvázi a processzor munkamemóriája – összeadni két regiszter értékét, stb…


A program forrása viszont egy magasabb szintű nyelven íródik, így sokkal hatékonyabb maga a programozás. Pl. C++-ban egy szöveg kiírása ennyiből áll:

cout << szoveg;


De a szöveg egy változó, ami a memória egy adott területét jelzi. Ennek a szövegnek a megfelelő betűin végig kell menni egyesével, és a képernyőt reprezentáló memóriaterületre kell másolni, figyelve arra, mikor van vége a szövegnek. A fenti egysoros programrészletből alkalmasint lesz egy-két tucat elemi utasítás, egy ciklus. Meg lehetne eleve gépikódban is írni, vagy az ahhoz nagyon közel álló assembly nyelven is, de úgy némileg macerásabb és átláthatatlanabb lenne.


Kétféle fő megoldás van arra, hogyan lesz egy x nyelven megírt programból a számítógép, processzor számára értelmezhető utasítássorozat, vagy egyszer lefordítjuk, és lesz belőle egy közvetlenül futtatható (exe) állomány, vagy minden futásnál lépésről lépésre fordítjuk le, ilyenkor nem fordítás történik, hanem a futtatáshoz kell egy értelmező (interpreter). Tipikusan ilyenek szoktak lenni a scriptek, batch fájlok.


Kvázi olyan a program forrása, mint ahogy az ember megtervezi a szobabútort. Bal oldalon legyen egy kétajtós akasztós szekrény, mellette egy médiaállvány, felül könyvespolccal, mellette egy vitrines tároló, alul négy polccal, lezárásként egy egyajtós szekrény, felül polcokkal.

Az asztalos lefordíthatja előre a dolgot, megtervezheti, hogy most akkor elsőnek le kell vágni ekkora deszkákat, aztán itt és itt kell lyukat fúrni, majd itt kell tipliket behelyezni, ide kell ragasztót kenni, majd így kell összerakni, ide kell ilyen és ilyen méretű csavart becsavarni, stb… Ha szépen ezt lejegyzeteli, akkor kvázi ő a fordító. Ha legközelebb kell ugyanezt a szekrénysort összerakni, csak előveszi a szerelési tervet, és összeszereli újra.

Az asztalos persze dolgozhat ad-hoc jelleggel. Elsőnek előveszi a kétajtós szekrényt, ott helyben kitalálja, hogyan tudja ezt összerakni, majd jön a médiaállvány rész, stb… Ha újra le kell gyártani a szekrénysort, újra végig kell menni az elemeken, újra ki kell találnia, hogy mit milyen lépésekben csinál meg. Kvázi hasonló az interpreter.


Meg persze a kép cizelláltabb, vannak kevert, összetettebb megoldások, virtuális gépre történő fordítás, ami kvázi keveréke a fordításnak és az értelmezésnek, vannak interpreterek, amik előfordítást végeznek, stb…

2016. aug. 30. 10:45
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!