Értelmezett és fordított programozási nyelvek: Mi a különbség?

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.