Assembler vs Compiler
Apskritai, kompiliatorius yra kompiuterio programa, kuri nuskaito programą, parašytą viena kalba, kuri vadinama š altinio kalba, ir išverčia ją į kitą kalbą, kuri vadinama tiksline kalba. Tradiciškai š altinio kalba buvo aukšto lygio kalba, pvz., C++, o tikslinė kalba buvo žemo lygio kalba, pvz., asamblėjos kalba. Tačiau yra kompiliatorių, kurie gali konvertuoti Assembly kalba parašytą š altinio programą ir konvertuoti ją į mašininį kodą arba objekto kodą. Tokie įrankiai yra surinkėjai. Taigi, tiek surinkėjai, tiek kompiliatoriai galiausiai sukuria kodą, kurį galima tiesiogiai vykdyti kompiuteryje.
Kas yra kompiliatorius?
Compiler yra kompiuterio programa, kuri nuskaito programą, parašytą viena kalba, kuri vadinama š altinio kalba, ir verčia ją į kitą kalbą, kuri vadinama tiksline kalba. Dažniausiai š altinio kalba yra aukšto lygio kalba, o tikslinė – žemo lygio kalba. Taigi, apskritai kompiliatoriai gali būti laikomi vertėjais, kurie verčia iš vienos kalbos į kitą. Be to, kompiliatoriai atlieka tam tikrą kodo optimizavimą. Įprastą kompiliatorių sudaro keli pagrindiniai komponentai. Pirmasis komponentas yra skaitytuvas (taip pat žinomas kaip leksinis analizatorius). Skaitytuvas nuskaito programą ir konvertuoja ją į žetonų eilutę. Antrasis komponentas yra analizatorius. Jis konvertuoja žetonų eilutę į analizavimo medį (arba abstrakčią sintaksės medį), kuris fiksuoja programos sintaksinę struktūrą. Kitas komponentas yra semantinės rutinos, interpretuojančios sintaksinės struktūros semantiką. Tai seka kodo optimizavimas ir galutinis kodo generavimas.
Kas yra surinkėjas?
Assembler yra programinė įranga arba įrankis, kuris verčia surinkimo kalbą į mašininį kodą. Taigi, asembleris yra kompiliatoriaus tipas, o š altinio kodas parašytas asamblėjos kalba. Asamblėja yra žmogaus skaitoma kalba, tačiau ji paprastai yra vienas su vienu ryšiu su atitinkamu mašinos kodu. Todėl sakoma, kad surinkėjas atlieka izomorfinį (vienas prie vieno) vertimą. Išplėstiniai surinkėjai suteikia papildomų funkcijų, kurios palaiko programų kūrimo ir derinimo procesus. Pavyzdžiui, tokio tipo surinkėjai, vadinami makrokomandomis, suteikia makrokomandą.
Kuo skiriasi surinkėjas ir kompiliatorius?
Compiler yra kompiuterio programa, kuri nuskaito viena kalba parašytą programą ir verčia ją į kitą kalbą, o surinkėjas gali būti laikomas specialiu kompiliatoriaus tipu, kuris tik surinkimo kalbą verčia į mašininį kodą. Kompiliatoriai paprastai sukuria mašinos vykdomąjį kodą tiesiai iš aukšto lygio kalbos, tačiau surinkėjai sukuria objekto kodą, kurį gali tekti susieti naudojant susiejimo programas, kad jis veiktų kompiuteryje. Kadangi surinkimo kalba turi atvaizdavimą vienas prie vieno su mašininiu kodu, surinkėjas gali būti naudojamas kodui, kuris veikia labai efektyviai tais atvejais, kai našumas yra labai svarbus (pvz., grafikos varikliams, įterptoms sistemoms su ribotais aparatinės įrangos ištekliais, palyginti su asmeniniu kompiuteriu), sukurti. pvz., mikrobangų krosnelės, skalbimo mašinos ir kt.).