Hatua ya mwisho ya kuunda programu ni kutafsiri algoriti iliyoandikwa katika mojawapo ya lugha za kupanga (C/C++, Pascal, n.k.) hadi lugha ya kiwango cha chini cha mashine. Hii ni kutokana na ukweli kwamba ili kufanya kazi yoyote, kompyuta zinahitaji kupewa amri katika lugha wanayoelewa, karibu na binary na kufanya kazi na miundo ya data ya awali (bit, byte au neno). Mchakato wa kutafsiri taarifa mahususi za kikoa za lugha za kiwango cha juu kuwa msimbo wa binary huitwa tafsiri. Kuna mbinu mbili za kutafsiri - mkusanyo na tafsiri.
Mkusanyaji - ni nini?
Uchambuzi wa tafsiri nyingi za maneno "compiler" na "compilation" huturuhusu kuangazia ufafanuzi ufuatao. Mkusanyaji ni mpango ulioundwa ili kutafsiri maandishi ya algoriti chanzi kutoka kwa lugha ya kiwango cha juu hadi seti sawa ya maagizo katika lugha inayolengwa na mashine. Huu ndio unaoitwa msimbo wa kitu, kwa uunganisho unaofuata wa msimbo wa kitu unaotokana na kuwa moduli ya programu iliyo tayari kutumia.
Mkusanyaji na mkalimani - kufanana na tofauti
Mkalimani ni matumizi ambayopamoja na mkusanyaji, iliyoundwa kutafsiri msimbo wa chanzo katika msimbo wa mashine. Walakini, tofauti na mkusanyaji, mkalimani huendesha kila wakati na programu na kutekeleza mstari wa tafsiri kwa mstari.
Unaweza kusema kwamba kikusanyaji na mkalimani ni vichakataji lugha vinavyoruhusu kompyuta kutambua na kutekeleza amri zilizotolewa na kitengeneza programu.
Uainishaji wa mkusanyaji
Wakusanyaji huainishwa hasa kulingana na vipengele vinavyohusiana na maeneo yao ya matumizi ya vitendo.
Mkusanyaji wa vekta ni matumizi ambayo hutafsiri msimbo wa chanzo kuwa msimbo wa kitu na hurekebishwa kwa ajili ya kompyuta zilizo na vichakataji vekta.
Mkusanyaji unaonyumbulika hupangwa katika lugha ya kiwango cha juu kwa mtindo wa moduli. Usimamizi wake unafanywa kwa kutumia meza. Pia inawezekana kuitekeleza kwa kutumia mkusanyaji wa vikusanyaji.
Mkusanyaji wa nyongeza ni kichakataji cha lugha ambacho hutafsiri upya vipande tofauti vya msimbo wa chanzo na nyongeza kwake. Hata hivyo, inaepuka kurejesha programu nzima.
Mkusanyaji wa kufasiri (kupiga hatua) ni matumizi ambayo hutekeleza mkusanyo huru kwa kila kauli au amri ya msimbo wa chanzo wa kiwango cha juu.
Mkusanyaji wa watunzi ni mfasiri anayeweza kukubali maelezo rasmi ya lugha ya programu na kuzalisha kikusanyaji kwa lugha yoyote ile.
Kikusanya utatuzi hukuruhusu kupata na kurekebisha baadhi ya aina ya hitilafu za kisintaksia zinazofanywa wakati wa kuandika msimbo wa chanzo
Mkusanyaji mkazi anachukua nafasi ya kudumu katika RAM na kwa hivyo inaweza kutumika tena kwa anuwai ya kazi.
Kikusanyaji kilichojikusanya kimeandikwa kwa lugha sawa na tafsiri.
Mkusanyaji wa ulimwengu wote unatokana na maelezo rasmi ya vigezo vya kisemantiki na kisintaksia vya lugha ya ingizo. Vipengee vikuu vya matumizi kama haya ni vipakiaji msingi, kisintaksia na kisemantiki.
Kifaa cha mkusanyaji
Mkusanyaji na kiunganishi ndio kiini cha mkusanyaji yeyote. Mara nyingi, wakati wa kuandaa, kiunganishi cha nje hutumiwa, na mkusanyaji yenyewe hufanya kazi ya kutafsiri tu. Pia hutokea kwamba mkusanyaji hutekelezwa kama aina ya programu ya meneja ambayo inahusishwa na mtafsiri (au watafsiri, ikiwa lugha tofauti za programu zilitumiwa wakati wa kuandika msimbo wa chanzo) na kiunganishi na kuanza utekelezaji wao inapohitajika.
Lugha za kupanga na mbinu za kutafsiri
Licha ya ukweli kwamba programu iliyoandikwa katika lugha yoyote ya programu inaweza kukusanywa na kufasiriwa, lugha nyingi za kiwango cha juu zina tangulizi kwa njia moja au nyingine ya kutafsiri. Kwa hivyo, lugha ya C iliundwa hapo awali kwa mkusanyiko, na Java - kwa tafsiri ya programu iliyoandikwa. ZinatengenezwaVikusanyaji C ni rahisi sana, shukrani kwa kiwango chake cha chini na idadi ndogo ya vipengele vya muundo.
Faida na hasara za watunzi na wakalimani. Maombi
Kumbuka kwamba programu zilizokusanywa ni za haraka zaidi kuliko zilizofasiriwa, lakini wakati huo huo, msimbo wa mashine uliopatikana kutokana na mkusanyiko unategemea mfumo wa maunzi. Kwa hivyo, programu iliyoandikwa na iliyokusanywa kwa Windows haitafanya kazi, kwa mfano, katika Linux. Kwa hiyo, katika kesi ya maombi ya mtandao, wakati haiwezekani kusema mapema katika mazingira gani watafanya kazi, hutumia tafsiri au bytecode (katika kesi hii, programu ya chanzo inabadilishwa kuwa fomu ya kati ambayo inaweza kutekelezwa kwenye vifaa mbalimbali. majukwaa).