Összeállította és értelmezett nyelv

Összeállította és értelmezett nyelv
Programozási nyelvek vannak osztva két osztályba - a lefordított és értelmezett.

A program egy összeállított nyelv segítségével speciális szoftver fordító alakítjuk (lefordított) egy sor utasítást a processzor típusát (gépi kód), majd tárolni egy futtatható fájl futtatható végezni, mint egy önálló program. Más szóval, a fordító lefordítja egy programot egy magas szintű nyelv egy alacsony szintű nyelv érthető a processzort.

Ha egy program írt egy értelmezett nyelv, a tolmács közvetlenül végrehajtja (értelmezi) a szöveg fordítás nélkül. A program továbbra is a nyelvről és nem indítható tolmács nélkül. Azt mondhatjuk, hogy a számítógép processzor - egy számítógépes kód tolmács.

Röviden, a fordító lefordítja a programot a gép nyelvére azonnal és teljes mértékben, ami egy külön program, és a tolmács közvetlenül a gép nyelvére végrehajtása során a program.

Elválasztása fordított és értelmezett nyelv némileg önkényes. Tehát, bármilyen hagyományos összeállított nyelvek, mint a Pascal, akkor írj egy tolmácsot. Ezen kívül a legtöbb modern „tiszta” tolmácsok nem teljesítik a nyelv szerkezetét is, és állítja össze őket egy magas szintű köztes képviselet (pl dereference változók és közzétételi makrók).

Bármely értelmezett nyelv, akkor létrehozhat egy fordítóprogram - például a nyelv Lisp, amelyet eredetileg értelmezni, akkor lehet összeállítani korlátozás nélkül. Előállított végrehajtása során a program kódot is össze dinamikusan futásidőben.

Általános szabály, hogy összeállított programok gyorsabb és nem kell futtatni a programokat, ahogy azt már lefordított gépi nyelv. Azonban minden egyes alkalommal, amikor a program módosítja a kívánt szöveget fordítani, ami megnehezíti, hogy dolgozzon. Ezen túlmenően, a lefordított program csak akkor fut az azonos típusú számítógépek, és mint általában, az ugyanazt az operációs rendszert, amelyen a fordító volt a célja. Hogy hozzanak létre egy futtatható fájlt egy másik típusú gép csak új összeállítás.

Értelmezett nyelvekhez van néhány egyedi kiegészítő funkciók (lásd. Fent), továbbá a program futtatható rajtuk után azonnal a változást, ami megkönnyíti, hogy dolgozzon. interpretált nyelvű program gyakran futnak a különböző típusú gépek és operációs rendszerek kiegészítés nélkül. Azonban értelmezni programok lassabban futnak összeállított, ráadásul nem lehet végrehajtani anélkül, hogy további szoftver tolmács.

Néhány nyelv, például Java, C #, amelyek között összeállított és értelmezni. Nevezetesen, a program fordítása nem gépi kódban, és a gép-független, alacsony szintű kód bájtkódot. Ezután a bájtkódot végrehajtja a virtuális gép. A végrehajtáshoz bytecode értelmezést használni, jóllehet egyes részeit, hogy gyorsítsa fel a munkaprogramot lehet lefordítani gépi kód futási időben összeállítása technológiai program „on the fly» (Just-in-time összeállítása, JIT). Java byte-kód végrehajtja Java (Java Virtual Machine, JVM) virtuális gép C # - Common Language Runtime.

Ezt a megközelítést, bizonyos értelemben lehet használni, mint a profik tolmácsok és fordítók. Meg kell említeni az eredeti Fort nyelv (Forth), amely, mivel egyidejűleg értelmezni és összeállítani.

Kapcsolódó cikkek