Az alapelvek programozás összeállított és értelmezett nyelv

Az alapelvek programozás összeállított és értelmezett nyelv

Ahogy a korábbi cikkben ez a sorozat, szeretném felhívni a figyelmet, hogy a legfontosabb elveket a programozás, amelyek befolyásolják mindent, amit teszünk, de csak ritkán szembesülnek közvetlenül, tehát nem teljesen értik őket. A téma a mai cikk - összeállított és értelmezett nyelvekhez.

Ahogy a fejlesztők, mi gyakran szembesülnek olyan fogalmak, mint a fordító és tolmács, de úgy gondolom, hogy sokan nem egészen értem, hogy mit jelent. Eközben összeállítása és értelmezése - az alapja minden programozási nyelven. Vessünk egy pillantást, hogyan is rendezett ezeket a fogalmakat.

belépés

Számítunk eszközök, mint például a válogatás és az értelmezés lehet átalakítani a kódot olyan formában, hogy a számítógép megért. A kód lehet végre natív operációs rendszer az átalakítás után a natív (a válogatás) vagy sor végrehajtása egy másik program, ami erre helyett OS (tolmács).

Összeállította nyelv - ez a nyelv, hogy a program összeállítója, utasításokat tartalmaz a cél gép; Ez a gép kód nem egyértelmű, hogy az embereket. Értelmezni ugyanazt a nyelvet - az, amelyben az utasításokat nem hajtja végre a cél gép, és olvassa el, és végrehajthatók egy másik program (amelyet általában nyelvén íródott a cél gép). Mivel fordítási időben, és az értelmezés van előnye és hátránya, és ez az, amit megbeszéljük.

Mielőtt folytatnánk, érdemes megjegyezni, hogy számos programozási nyelvben mind a lefordított és értelmezett változata, így nehéz osztályozni őket. Annak érdekében azonban, nem bonyolítja a jövőben fogok megosztása összeállítani és értelmezett nyelvekhez.

összeállított nyelv

A fő előnye az összeállított nyelv - ez a végrehajtás sebessége. Mert alakítjuk natív kód, akkor a munka sokkal gyorsabb és hatékonyabb, mint értelmezni, különösen, ha figyelembe vesszük, hogy bonyolult a követelések egyes modern programozási nyelv értelmezése.

Az alacsony szintű nyelvek jellemzően összeállítani, mert a hatékonyság általában fölé a cross-platform. Ezen túlmenően, a lefordított nyelvek, így a fejlesztő sokkal rugalmasságot biztosít a vezérlő hardver, mint például a memória és a CPU felhasználás kezelés. Példák összeállítani nyelv C. C ++. Erlang, Haskell és modernebb nyelvek, mint a rozsda és a Go.

Problémák összeállított nyelv, általában nyilvánvalóak. A program futtatásához, az írás egy összeállított nyelvet, először is azt kell összeállítani. Ez nem csak egy újabb lépést, de jelentős szövődménye hibakeresés, mert tesztelni bármilyen változás a programban kell összeállítani újra. Ezen túlmenően, a lefordított nyelv platform-függő, mert a gépi kód függ a gépet, amelyen a program fordítása és kivégezték.

értelmezett nyelvekhez

Ellentétben összeállított nyelv értelmezett nincs szükség gépi kódot a program végrehajtását; Ehelyett a program elvégzi egy sort tolmácsok. Korábban az értelmezés folyamatának volt egy nagyon hosszú idő, de az Advent a technológiák, mint a JIT-összeállítás. közötti rés össze és értelmezett nyelvekhez csökken. Példák értelmezett nyelv PHP. Perl. Ruby és Python. Íme néhány a fogalmak váltak könnyebb, köszönhetően egy értelmezett nyelv:

A fő hátránya interpretált nyelv az alacsony végrehajtási sebesség. Azonban JIT-összeállítás lehetővé teszi, hogy gyorsítsák fel a folyamatot a fordításnak köszönhetően a leggyakrabban használt szekvenciák utasítások gépi kódra.

Bónusz: bájtkódot-nyelv

Bájtkódjának nyelvű - ezek a nyelvek, amelyek a kód végrehajtását az összeállítása és értelmezése. Java keretrendszer és a .NET - egy tipikus példa, bytecode nyelven. Tény, hogy a Java Virtual Machine (JVM) - ez olyan népszerű virtuális gép, hogy értelmezze a bájtkódot abban alkalmazott végrehajtása több nyelven. By the way, a közelmúltban ismertté vált. hogy az új verzió a Java is támogatni fogja, és statikus összeállítása.

A bájtkód nyelvű előbb összeállítása a program chelovekochitaemogo nyelv bytecode. Bájtkódjának - egy sor utasítást tervezett hatékony végrehajtását a tolmács, és egy kompakt numerikus kód, állandók, és hivatkozásokat memóriát. Azóta a bájtkódot jut el a virtuális gépet, ami aztán értelmezi a kódot, valamint a hagyományos tolmács.

Ha lefordítani a kódot, hogy bájtkódot késik, de további végrehajtási sebesség jelentősen nőtt, mivel optimalizálja a bájtkódot. Ezen túlmenően, a bájtkódot-nyelv platformfüggetlen, meghaladva így értelmezett sebesség. Ők is elérhető a JIT-fordítás.

következtetés

Sok nyelv ma már mind össze és értelmezhetők végrehajtását, csökkentve a különbség a kettő között nem. Minden típusú kódfuttatást megvannak a maga előnyei és hátrányai.

Röviden össze nyelv a leghatékonyabbak, mert végre a natív kód, és lehetővé teszi a használatát a rendszer hardver. Azonban ez vezet a további korlátozásokat ír kódot, és így egy platform-függő. Az értelmezett nyelv nem függ a platform, és lehetővé teszi az ilyen technikák dinamikus programozás metaprogramozás. Azonban a végrehajtási sebesség lényegesen rosszabb, mint a lefordított nyelven.

Bytecode nyelvek, viszont megpróbálja használni az erősségei mind féle nyelven, és hogy van ez jól.