<prompt> Eleza ni nini kinachoweza kuzuia programu kutunga.  <response>: Kukusanya ni mchakato wa kuchukua msimbo wa chanzo, aina ya programu inayoweza kusomeka na binadamu, na kuibadilisha kuwa msimbo wa mashine au msimbo wa byte, ambao unaweza kutekelezwa na kompyuta. Kuna sababu kadhaa kwa nini programu haiwezi kujumuisha: 1. Makosa ya Sintaksia: Sintaksia inarejelea sheria zinazoelekeza jinsi msimbo lazima uandikwe ili ichukuliwe kuwa halali na mkusanyaji. Hitilafu ya sintaksia hutokea wakati msimbo haujaandikwa kulingana na sheria hizi. Kwa mfano, ikiwa mtayarishaji programu atasahau kujumuisha nusu-koloni mwishoni mwa mstari katika lugha inayohitaji, hitilafu ya sintaksia itatokea wakati wa utungaji. 2. Makosa ya kisemantiki: Ingawa makosa ya sintaksia yanahusika na umbo la msimbo, makosa ya kisemantiki yanahusika na maana yake. Kosa la kisemantiki hutokea wakati msimbo ni sahihi kisintaksia lakini haileti mantiki. Kwa mfano, ikiwa mpangaji programu anajaribu kufanya shughuli za hesabu kwenye kamba mbili, hitilafu ya semantic itatokea wakati wa kukusanya. 3. Mategemeo Yanayokosekana: Programu wakati mwingine hutegemea maktaba za nje au mifumo, ambayo hutoa utendaji wa ziada. Ikiwa tegemezi hizi hazijasakinishwa au kuunganishwa vizuri, programu itashindwa kujumuisha. 4. Masuala ya Mkusanyaji: Katika baadhi ya matukio, mkusanyaji yenyewe inaweza kuwa sababu ya tatizo. Kwa mfano, kunaweza kuwa na hitilafu katika mkusanyaji, au haiwezi kusanidiwa ipasavyo. 5. Kutolingana kwa Majukwaa au Usanifu: Programu mara nyingi hutengenezwa ili kukusanywa na kuendeshwa kwenye majukwaa au usanifu mahususi. Ikiwa programu itajaribu kuunda programu kwenye jukwaa au usanifu ambao haukuundwa, hii inaweza kusababisha matatizo wakati wa utungaji. Kila moja ya maswala haya ina suluhisho lake maalum, lakini hatua ya kwanza ya kutatua shida na mkusanyiko ni kawaida kusoma kwa uangalifu ujumbe wa makosa unaotolewa na mkusanyaji kujaribu na kutambua sababu. 