Google Play badge

compiler


MGA COMPILERS

Ang isang compiler ay tumutukoy sa isang computer program na ginagamit upang isalin ang isang computer code na nakasulat sa isang programming language (tinukoy bilang source language) sa isa pang programming language (tinukoy bilang target na wika). Pangunahing inilapat ang terminong compiler para sa mga program na nagsasalin ng mga source code mula sa isang mataas na antas ng programming language patungo sa isang mas mababang antas ng programming language. Halimbawa, machine code, object code o assembly language para gumawa ng executable program.

Mahalagang tandaan na mayroong maraming iba't ibang uri ng mga compiler. Kung sakaling ang program na pinagsama-sama ay maaaring tumakbo sa isang computer na ang operating system o CPU ay iba sa isa na pinapatakbo ng compiler, ang compiler ay tinutukoy bilang isang cross-compiler. Ang isang bootstrap compiler sa kabilang banda ay nakasulat sa wika na nilalayon nitong i-compile. Ang decompiler ay isang programa na ginagamit upang isalin ang isang mababang antas ng wika sa isang mas mataas na antas ng wika. Ang isang program na ginagamit upang magsalin sa pagitan ng mga mataas na antas ng wika ay tinutukoy bilang isang source-to-source compiler. Maaari din itong tukuyin bilang transpiler. Ang isang programa na responsable para sa pagsasalin ng anyo ng mga expression na walang pagbabago ng wika ay kilala bilang isang rewriter ng wika. Ang terminong compiler-compiler ay tumutukoy sa mga tool na iyon na ginagamit upang lumikha ng mga parser na responsable para sa pagsasagawa ng syntax analysis.

Ang ilan sa mga operasyon na ginagawa ng isang compiler ay kinabibilangan ng: preprocessing, parsing, (syntax directed translation) semantic analysis, lexical analysis, code generation, code optimization at conversion ng mga input programs sa isang intermediate na representasyon. Ang mga compiler ay may pananagutan sa pagpapatupad ng mga operasyong ito sa iba't ibang yugto na nagtataguyod ng mga tamang pagbabago at mahusay na disenyo ng source input sa target na output. Ang mga pagkakamali ng programa na sanhi ng maling pag-uugali ng compiler ay maaaring maging napakahirap na subaybayan at ayusin. Samakatuwid, ang mga nagpapatupad ng compiler ay namumuhunan ng makabuluhang pagsisikap upang matiyak ang kawastuhan ng compiler.

Mahalagang tandaan na ang mga compiler ay hindi lamang ang mga tagasalin na ginagamit upang baguhin ang mga source program. Ang isang computer software na responsable para sa pagbabago at pagkatapos ay isagawa ang ipinahiwatig na mga operasyon ay tinutukoy bilang isang interpreter. Ang proseso ng pagsasalin ay nakakaimpluwensya sa disenyo ng mga wika ng computer na humahantong sa isang kagustuhan ng interpretasyon o compilation. Sa pagsasagawa, ang pagpapatupad ng isang interpreter para sa mga compiler at pinagsama-samang mga wika ay maaaring ipatupad para sa mga na-interpret na wika.

Tandaan na kapag gumagamit ng isang compiler, isang dalawang-hakbang na proseso ang ginagamit upang magpatakbo ng isang programa,

ANG COMPILATION TOOL CHAIN

Para sa mga program na malalaki, ang compiler ay bahagi ng isang multi step tool chain,

(preprocessor)- (compiler)- (assembler)- (linker)- (loader).

STRUCTURE NG ISANG COMPILER

Ang mga modernong compiler ay binubuo ng dalawang pangunahing bahagi. Ang bawat isa sa mga bahaging ito ay madalas na nahahati. Ang dalawang pangunahing bahagi na ito ay ang front end at ang likod na dulo.

Ang front end ay may pananagutan para sa pagsusuri ng source program, bumuo ng isang intermediate na representasyon ng programa at tinutukoy ang mga bahagi nito. Sa pangkalahatan, ang front end ay independiyente sa target na wika.

Ang likod na dulo sa kabilang banda ay responsable para sa pag-synthesize ng target na programa mula sa intermediate na representasyon na ginawa ng front end. Sa pangkalahatan, ang likod na dulo ay sinasabing independyente sa pinagmulang wika.

Download Primer to continue