Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Kompiliatorius

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Kompiliatorius - toksai transliatorius, kuris verčia programos tekstą, parašytą kuria nors programavimo kalba į gerokai žemesnio lygio kalbą - t.y., į mašininį kodą arba į asemblerį.

Kompiliuojama gali būti ir į asemblerį, nes šis yra visiškai tiesioginis dvejetainio kodo analogas. Programos, verčiančios iš asemblerio į dvejetainį kodą dėl šios priežasties nėra vadinamos kompiliatoriais, nes neatlieka tokių sudėtingų funkcijų, o tik vykdo tiesioginę transliaciją. Kitaip tariant, tokios programos vadinamos ne kompiliatoriais, o asembleriais.

Kompiliuoti galima tiktai kompiliuojamas kalbas, nors dėl įvairių marketinginių ar techninių priežasčių neretai aiškinama, kad galima kompiliuoti ir, pvz., iš tokių kalbų, kaip PHP, Basic ar JavaScript. Išties kompiliavimas reiškia, kad programa ne šiaip paverčiama į dvejetainę vykdomąją programą (pvz., Windows EXE ar Linux ELF), o pačios programos tekstas yra paverčiamas į mašininį kodą, kuris yra suprantamas ir vykdomas aparatinio procesoriaus. Tai reiškia, kad su tekstu tenka atlikti daug analizės, identifikuojant jame esančias kodo struktūras, kintamuosius, jų naudojimą, o paskui ir įvykdyti transliaciją, atitinkamų struktūrų tiesioginius analogus sukuriant dvejetainiame kode.

Jei programa yra parašyta interpretuojama kalba, tai reiškia, kad kai kurios iš jos struktūrų, funkcijų ar konstrukcijų iš principo negali būti transliuojamos į mašininį kodą. Kartais, nepaisant to, ir tokių interpretuojamų kalbų atveju naudojama kompiliavimo sąvoka, tačiau ji čia reiškia visai ką kitą - transliaciją į tam tikrą vykdomąjį pseudokodą, kurį interpretatorius gali vykdyti iki kelių kartų greičiau, nes kodas optimizuotas ir dalinai jau apdirbtas. Visgi tokia transliacija kompiliavimu gali būti vadinama tiktai pritempiant iš techninės ir marketinginės pusės.