Nyilvánvaló, hogy az emberek és egy elektronikus eszköz, mint a számítógép észlelhetősége más. Az emberek bármit megérthetnek a természetes nyelveken, de a számítógép nem. A számítógépnek szüksége van egy fordítóra, hogy az emberi olvasható formában írt nyelveket számítógéppel olvasható formává alakítsa.
A fordító és tolmács a nyelvfordító típusai. Mi az a nyelvi fordító? Ez a kérdés az elmédben felmerülhet.
A nyelvi fordító egy olyan szoftver, amely a programokat az emberi olvasható formában lévő forrásnyelvből egy ekvivalens programba fordítja objektumnyelvben. A forrásnyelv általában magas szintű programozási nyelv, és az objektumnyelv általában egy adott számítógép gép nyelve.
Összehasonlító táblázat
Az összehasonlítás alapja | Fordítóprogram | Tolmács |
---|---|---|
Bemenet | Egyszerre egy teljes programot vesz igénybe. | Egyszerre csak egy sor kódot vagy utasítást vesz igénybe. |
kibocsátás | Közbenső objektumkódot generál. | Nem hoz létre közbenső objektumkódot. |
Működési mechanizmus | Az összeállítás a végrehajtás előtt történik. | Az összeállítás és a végrehajtás egyidejűleg történik. |
Sebesség | Összehasonlítva gyorsabb | lassabb |
memória | A memóriaigény inkább az objektumkód létrehozásának köszönhető. | Kevesebb memóriát igényel, mivel nem hoz létre köztes objektumkódot. |
hibák | Az összes hiba megjelenítése az összeállítás után, egyszerre. | Az egyes sorok hibáját egyenként jeleníti meg. |
Hiba észlelése | Nehéz | Könnyebb összehasonlítani |
Tartalmazó programozási nyelvek | C, C ++, C #, Scala, gépírógép fordítót használ. | Java, PHP, Perl, Python, Ruby tolmácsot használ. |
A fordító meghatározása
A fordító egy olyan program, amely a magas szintű nyelven írt programot olvassa és konvertálja a gépbe vagy az alacsony szintű nyelvre, és jelentést készít a programban lévő hibákról. A teljes forráskódot egy lépésben konvertálja, vagy többszöri átutalást végezhet, de végül a felhasználó megkapja a végrehajtásra kész fordított kódot.
A fordító fázisokon működik; a különböző szakaszok két részre oszthatók:
- Az elemzés A fordító fázisát is úgy nevezik, mint az első véget, amelyben a program alapvető alkotórészekre van osztva, és ellenőrzi a kód grammatikáját, szemantikáját és szintaxisát, amely után a köztes kódot generálják. Az elemzés fázisa a lexikai elemző, a szemantikai elemző és a szintaxis analizátor.
- A fordító szintézisének fázisa a hátsó vég, amelyben a köztes kódot optimalizálták, és a célkódot generálják. A szintézis fázis tartalmazza a kód optimalizálót és a kódgenerátort.
A COMPILER FÁZISI
Most értsük meg részletesen az egyes szakaszok működését.
- Lexical Analyzer : A kódot karakterkészletként vizsgálja, csoportosítja a karakterek sorrendjét a lexémákba, és a programozási nyelvre hivatkozva kibocsát egy sorozatot.
- Szintaxisanalizátor : Ebben a fázisban az előző szakaszban generált tokenek a programnyelv nyelvtanához igazodnak, függetlenül attól, hogy a kifejezések szintaktikailag helyesek-e vagy sem. Ez teszi a parse fákat erre.
- Szemantikus elemző : Ellenőrzi, hogy az előző fázisban generált kifejezések és utasítások követik-e a programozási nyelv szabályait, vagy nem, és megjegyzéseket tartalmazó parsefeket hoznak létre.
- Közbenső kódgenerátor : A forráskód egyenértékű köztes kódját generálja. Számos közbenső kódot ábrázol, de a TAC (három címkód) a legelterjedtebb.
- Kódoptimalizáló : javítja a program idő- és helyigényét. Ehhez megszünteti a programban lévő redundáns kódot.
- Kódgenerátor : Ez a fordító utolsó fázisa, amelyben egy adott gép célkódja jön létre. Olyan műveleteket hajt végre, mint a memóriakezelés, a Regisztráció hozzárendelése és a gép specifikus optimalizálása.
A szimbólumtáblázat valamilyen adatstruktúra, amely az azonosítókat és a tárolt adattípusokat kezeli. Hibaelhárító észleli, jelentést készít, korrigálja a fordító különböző fázisai között tapasztalt hibákat.
A tolmács meghatározása
A tolmács a programozási nyelv megvalósításának alternatívája, és ugyanaz a munka, mint a fordító. A tolmács lexinget, elemzést és típusellenőrzést végez a fordítóhoz hasonlóan. De a tolmács a szintaxis fát közvetlenül a kifejezésekhez és a nyilatkozat végrehajtásához dolgozza fel, ahelyett, hogy kódot generálna a szintaxis fáról.
A tolmácsnak ugyanazon szintaxisfa feldolgozásához többször is szüksége lehet, mert az értelmezés viszonylag lassabb, mint a fordított program végrehajtása.
Az összeállítás és az értelmezés valószínűleg egy programozási nyelv megvalósításához kapcsolódik. Amelyben a fordító közbenső szintű kódot generál, akkor a kódot inkább a gépkódra fordítják, és nem fordítják össze.
Egy tolmács alkalmazása előnyös a programfejlesztés során, ahol a legfontosabb része, hogy a programmódosításokat gyorsan tesztelje, nem pedig hatékonyan futtatja a programot.
A fordító és tolmács közötti különbségek
Nézzük meg a fő fordító és tolmács közötti különbségeket.
- A fordító a program egészét veszi át, és lefordítja azt, de a tolmács a program nyilatkozatot állítja le.
- Közvetítő kód vagy célkód generálódik fordító esetén. A tolmács ellen nem hoz létre köztes kódot.
- A fordító viszonylag gyorsabb, mint a tolmács, mivel a fordító az egész programot egy időben veszi, míg a tolmácsok egymás után fordítják a kódokat.
- A fordító több memóriát igényel, mint a tolmács az objektumkód létrehozása miatt.
- A fordító minden hibát egyidejűleg mutat be, és nehezen észlelhető az ellentmondásos hibák minden egyes állításnál, és könnyebben észlelhetők a hibák.
- A fordítóban, amikor hiba lép fel a programban, leállítja a fordítást, és a hiba eltávolítása után az egész programot lefordítja. Éppen ellenkezőleg, ha hiba történik a tolmácsban, megakadályozza annak fordítását, és a hiba eltávolítása után a fordítás folytatódik.
- A fordítóban a folyamat két lépést igényel, amelyekben az első forráskódot lefordítják a célprogramra, majd végrehajtják. A tolmácsban egy lépéses folyamat, amelyben a forráskódot egyszerre fordítják és végrehajtják.
- A fordítót olyan programozási nyelvekben használják, mint a C, C ++, C #, Scala, stb. A másik tolmács a Java, PHP, Ruby, Python stb.
Következtetés
A fordító és a tolmács egyaránt ugyanazokat a munkákat kívánja elvégezni, de különbözik a működési eljárásban, a fordító összesített módon veszi a forráskódot, míg a tolmács a forráskód alkotóelemeit, azaz nyilatkozatot tesz.
Bár mind a fordító, mind a tolmács bizonyos előnyökkel és hátrányokkal rendelkezik, mint például a tolmácsolt nyelvek kereszt-platformnak, azaz a kód hordozható. Nem szükséges a korábban fordítóval ellentétes utasítások fordítása sem, ami időtakarékos. A fordított nyelvek gyorsabbak az összeállítás során.