„Assembler vs Compiler“
Apskritai kompiliatorius yra kompiuterinė programa, nuskaitanti viena kalba parašytą programą, kuri vadinama šaltinio kalba, ir išverčia ją į kitą kalbą, vadinamą tiksline kalba. Tradiciškai šaltinio kalba buvo aukšto lygio kalba, pvz., C ++, o tikslinė kalba buvo žemo lygio, pvz., Asamblėjos kalba. Tačiau yra kompiliatorių, kurie gali konvertuoti šaltinio programą, parašytą asamblėjos kalba, ir paversti ją mašininiu ar objekto kodu. Surinkėjai yra tokie įrankiai. Taigi, tiek surinkėjai, tiek kompiliatoriai galiausiai sukuria kodą, kurį galima tiesiogiai atlikti mašinoje.
Kas yra kompiliatorius?
Kompiliatorius yra kompiuterinė programa, nuskaitanti viena kalba parašytą programą, vadinamą šaltinio kalba, ir išverčianti ją į kitą kalbą, vadinamą tiksline kalba. Dažniausiai šaltinio kalba yra aukšto lygio, o tikslinė - žemo lygio. Taigi apskritai kompiliatorius galima vertinti kaip vertėjus, kurie verčia iš vienos kalbos į kitą. Be to, kompiliatoriai atlieka tam tikrą kodo optimizavimą. Tipišką kompiliatorių sudaro keli pagrindiniai komponentai. Pirmasis komponentas yra skaitytuvas (dar vadinamas leksiniu analizatoriumi). Skaitytuvas nuskaito programą ir paverčia ją žetonų eilute. Antrasis komponentas yra analizatorius. Žetonų eilutę paverčia analizės medžiu (arba abstrakčiu sintaksės medžiu), kuris užfiksuoja sintaksinę programos struktūrą. Kitas komponentas yra semantinės rutinos, interpretuojančios sintaksinės struktūros semantiką. Kodo optimizavimas ir galutinis kodo generavimas seka tai.
Kas yra surinkėjas?
„Assembler“yra programinė įranga arba įrankis, kuris išverčia surinkimo kalbą į mašinos kodą. Taigi asamblėja yra kompiliatoriaus tipas, o šaltinio kodas parašytas asamblėjos kalba. Asamblėja yra žmonėms skaitoma kalba, tačiau ji paprastai turi ryšį vienas su vienu su atitinkamu mašinos kodu. Todėl sakoma, kad surinkėjas atlieka izomorfinį (vienas į vieną atvaizdavimas) vertimą. Pažangūs surinkėjai teikia papildomas funkcijas, palaikančias programų kūrimą ir derinimo procesus. Pvz., Surinkėjų tipas, vadinamas makrokomunikatoriais, suteikia makrokomandą.
Kuo skiriasi surinkėjas ir kompiliatorius?
Kompiliatorius yra kompiuterinė programa, nuskaitanti viena kalba parašytą programą ir išverčianti ją į kitą kalbą, o surinkėjas gali būti laikomas specialiu kompiliatoriaus tipu, kuris verčia tik asamblėjos kalbą į mašinos kodą. Kompiliatoriai paprastai sukuria mašinos vykdomąjį kodą tiesiogiai iš aukšto lygio kalbos, tačiau surinkėjai sukuria objekto kodą, kurį gali tekti susieti naudojant susiejimo programas, kad būtų galima paleisti mašinoje. Kadangi asamblėjos kalba yra susieta su mašininiu kodu, montuotojas gali būti naudojamas kuriant kodą, kuris veikia labai efektyviai tais atvejais, kai našumas yra labai svarbus (pvz., Grafikos varikliams, įterptosioms sistemoms su ribotais aparatūros ištekliais, palyginti su asmeniniu kompiuteriu). kaip mikrobangų krosnelės, skalbimo mašinos ir kt.).