Assembler vs Compiler
Sa pangkalahatan, ang compiler ay isang computer program na nagbabasa ng program na nakasulat sa isang wika, na tinatawag na source language, at isinasalin ito sa ibang wika, na tinatawag na target na wika. Ayon sa kaugalian, ang pinagmulang wika ay isang mataas na antas ng wika tulad ng C++ at ang target na wika ay isang mababang antas ng wika tulad ng Assembly language. Gayunpaman, may mga compiler na maaaring mag-convert ng source program na nakasulat sa Assembly language at i-convert ito sa machine code o object code. Ang mga assembler ay ganoong mga kasangkapan. Kaya, ang parehong mga assembler at compiler sa huli ay gumagawa ng code na maaaring direktang isagawa sa isang makina.
Ano ang Compiler?
Ang Compiler ay isang computer program na nagbabasa ng program na nakasulat sa isang wika, na tinatawag na source language, at isinasalin ito sa ibang wika, na tinatawag na target na wika. Kadalasan, ang pinagmulang wika ay isang mataas na antas ng wika at ang target na wika ay isang mababang antas ng wika. Kaya, sa pangkalahatan, ang mga compiler ay makikita bilang mga tagasalin na nagsasalin mula sa isang wika patungo sa isa pa. Bilang karagdagan, ang mga compiler ay nagsasagawa ng ilang mga pag-optimize sa code. Ang isang karaniwang compiler ay binubuo ng ilang pangunahing bahagi. Ang unang bahagi ay ang scanner (kilala rin bilang lexical analyzer). Binabasa ng scanner ang program at iko-convert ito sa isang string ng mga token. Ang pangalawang bahagi ay ang parser. Kino-convert nito ang string ng mga token sa isang parse tree (o abstract syntax tree), na kumukuha ng syntactic na istraktura ng programa. Ang susunod na bahagi ay ang semantic routines na nagbibigay kahulugan sa semantics ng syntactic structure. Ang mga pag-optimize ng code at panghuling pagbuo ng code ay sumusunod dito.
Ano ang Assembler?
Ang Assembler ay isang software o isang tool na nagsasalin ng Assembly language sa machine code. Kaya, ang assembler ay isang uri ng compiler at ang source code ay nakasulat sa Assembly language. Ang pagpupulong ay isang wikang nababasa ng tao ngunit karaniwan itong may ugnayan sa isa sa isa sa kaukulang code ng makina. Samakatuwid ang isang assembler ay sinasabing nagsasagawa ng isomorphic (one to one mapping) na pagsasalin. Ang mga advanced na assembler ay nagbibigay ng mga karagdagang feature na sumusuporta sa pag-develop ng program at mga proseso ng pag-debug. Halimbawa, ang uri ng mga assembler na tinatawag na macro assemblers ay nagbibigay ng macro facility.
Ano ang pagkakaiba ng Assembler at Compiler?
Ang Compiler ay isang computer program na nagbabasa ng program na nakasulat sa isang wika at isinasalin ito sa ibang wika, habang ang isang assembler ay maaaring ituring na isang espesyal na uri ng compiler na nagsasalin lamang ng Assembly language sa machine code. Ang mga compiler ay karaniwang gumagawa ng machine executable code nang direkta mula sa isang mataas na antas ng wika, ngunit ang mga assembler ay gumagawa ng object code na maaaring kailangang i-link gamit ang mga linker program upang tumakbo sa isang makina. Dahil ang Assembly language ay may one to one mapping na may machine code, maaaring gumamit ng assembler para sa paggawa ng code na gumagana nang napakahusay para sa mga okasyon kung saan napakahalaga ng performance (hal. mga graphics engine, mga naka-embed na system na may limitadong mapagkukunan ng hardware kumpara sa isang personal na computer. tulad ng mga microwave, washing machine, atbp.).