Minden program utasítások halmaza, legyen szó két szám hozzáadásáról vagy kérés küldéséről az interneten keresztül. A fordítók és tolmácsok ember által olvasható kódot vesznek át és konvertálják számítógéppel olvasható gépi kódgá.
Fordított nyelven a célgép közvetlenül lefordítja a programot. Értelmezett nyelven a forráskódot a célgép nem fordítja le közvetlenül. Ehelyett egy másik program, más néven tolmács olvassa és futtatja a kódot.
Oké ... de mit is jelent ez valójában ?
Képzelje el, hogy van egy hummus receptje, amelyet el akar készíteni, de ősi görög nyelven íródott. Kétféleképpen követheti ön, nem ókori-görög beszélő, annak utasításait.
Az első az, ha valaki már lefordította neked angolra. Te (és bárki más, aki tud angolul) elolvashatja a recept angol változatát és elkészítheti a hummust. Gondoljon erre a lefordított receptre, mint lefordított változatra.
A második út az, ha van barátod, aki ismeri az ógörögöt. Ha készen állsz a hummus készítésére, a barátod melletted ül, és sorra sorra lefordítja a receptet angol nyelvre. Ebben az esetben a barátod a tolmács a recept értelmezett változatához.
Összeállított nyelvek
Az összeállított nyelveket közvetlenül gépi kódokká alakítják, amelyeket a processzor végrehajthat. Ennek eredményeként hajlamosak gyorsabban és hatékonyabban végrehajtani, mint az értelmezett nyelveket. Ezenkívül a fejlesztőnek nagyobb ellenőrzést biztosítanak a hardver szempontok felett, mint például a memóriakezelés és a processzorhasználat.
Az összeállított nyelveknek „építési” lépésre van szükségük - először manuálisan kell őket lefordítani. Minden alkalommal, amikor változtatni kell, újra kell építenie a programot. Hummus példánkban a teljes fordítást megírjuk, mielőtt hozzád kerülne. Ha az eredeti szerző úgy dönt, hogy másfajta olívaolajat akar használni, akkor a teljes receptet újra le kell fordítani, és neheztelni kell rád.
A tiszta fordított nyelvek példái a C, C ++, Erlang, Haskell, Rust és Go.
Értelmezett nyelvek
A tolmácsok soronként futnak végig egy programon, és végrehajtják az egyes parancsokat. Itt, ha a szerző úgy dönt, hogy másfajta olívaolajat akar használni, kikaparhatja a régit, és hozzáadhatja az újat. A fordító barátod ezt követően továbbadhatja neked ezt a változást.
Az értelmezett nyelvek egykor lényegesen lassabbak voltak, mint az összeállított nyelvek. De az éppen időben történő összeállítás fejlesztésével ez a különbség egyre csökken.
Példák az általánosan értelmezett nyelvekre: PHP, Ruby, Python és JavaScript.
Egy kis figyelmeztetés
A legtöbb programozási nyelvben fordított és értelmezett megvalósítás is lehet - maga a nyelv nem feltétlenül van lefordítva vagy értelmezve. Az egyszerűség kedvéért azonban általában ilyeneknek nevezik őket.
A Python például lefordított programként vagy interaktív módban értelmezett nyelvként futtatható. Másrészt a legtöbb parancssori eszköz, a CLI-k és a héjak elméletileg értelmezett nyelvek közé sorolhatók.
Előnyök és hátrányok
Az összeállított nyelvek előnyei
A natív gépi kódra fordított programok általában gyorsabbak, mint az értelmezett kódok. Ennek oka, hogy a futás közbeni kód fordításának folyamata növeli az általános költségeket, és a program összességében lassabbá válhat.
Az összeállított nyelvek hátrányai
A legjelentősebb hátrányok:
- További idő szükséges a teljes fordítási lépés teljesítéséhez a tesztelés előtt
- A generált bináris kód platformfüggősége
Az értelmezett nyelvek előnyei
Az értelmezett nyelvek általában rugalmasabbak, és gyakran olyan funkciókat kínálnak, mint a dinamikus gépelés és a kisebb programméret. Továbbá, mivel az értelmezők maguk hajtják végre a forrásprogram kódot, maga a kód platformfüggetlen.
Az értelmezett nyelvek hátrányai
A legjelentősebb hátrány a tipikus végrehajtási sebesség a lefordított nyelvekhez képest.