Montuotojas vs vertėjas
Apskritai, kompiliatorius yra kompiuterinė programa, kuri nuskaito programa, parašyta viena kalba, kuri vadinama šaltinio kalba, ir verčia ją į kitą kalbą, vadinamą tiksline kalba. Paprastai originalo kalba yra aukšto lygio kalba, tokia kaip C ++, o tikslinė kalba yra žemo lygio, pavyzdžiui, susirinkimo kalba. Tačiau yra kompiliatorių, kurie gali konvertuoti šaltinio programą, parašytą susirinkimo kalba, ir konvertuoti ją į mašinos kodą arba objekto kodą. Montuotojai yra tokie įrankiai. Kita vertus, vertėjai yra įrankiai, vykdantys instrukcijas, parašytas tam tikra programavimo kalba. Vertėjas gali tiesiogiai vykdyti aukšto lygio kodą arba išversti juos į tarpinį kodą, tada jį interpretuoti arba vykdyti iš anksto sudarytą kodą..
Kas yra montuotojas?
Montuotojas yra programinė įranga arba įrankis, kuris paverčia asamblėjos kalbą į mašinos kodą. Taigi, surinkėjas yra sudarytojo tipas, o šaltinio kodas parašytas susirinkimo kalba. Surinkimas yra žmonėms suprantama kalba, tačiau paprastai tai yra vienas su kitu santykis su atitinkamu mašinos kodu. Todėl sakoma, kad surinkėjas atlieka izomorfinį (vienas su vienu kartografavimo) vertimą. Pažangūs surinkėjai teikia papildomų funkcijų, palaikančių programų kūrimą ir derinimo procesus. Pavyzdžiui, surinkėjų tipas, vadinamas makrokomplektoriais, suteikia makrokomandą.
Kas yra vertėjas?
Vertėjas yra kompiuterio programa arba įrankis, vykdantis programavimo instrukcijas. Vertėjas gali tiesiogiai vykdyti šaltinio kodą arba konvertuoti šaltinį į tarpinį kodą ir tiesiogiai jį vykdyti arba vykdyti kompiliatoriaus iš anksto sukompiliuotą kodą (kai kuriose vertimo sistemose yra šios užduoties kompiliatorius). Tokios kalbos kaip „Perl“, „Python“, „MATLAB“ ir „Ruby“ yra programavimo kalbų, naudojančių tarpinį kodą, pavyzdžiai. UCSD Pascal interpretuoja iš anksto sudarytą kodą. Tokios kalbos kaip „Java“, „BASIC“ ir „Samlltalk“ pirmiausia sudeda šaltinį į tarpinį kodą, vadinamą baitiniu kodu, ir tada jį interpretuoja..
Kuo skiriasi montuotojas ir vertėjas??
Montuotojas gali būti laikomas ypatingo tipo kompiliatoriumi, kuris tik verčia asamblėjos kalbą į mašinos kodą. Vertėjai yra įrankiai, vykdantys instrukcijas, parašytas tam tikra kalba. Vertimo žodžiu sistemose gali būti kompiliatorius, kad prieš vertimą būtų iš anksto sudarytas kodas, tačiau vertėjas negali būti vadinamas specialiu kompiliatoriaus tipu. Surinkėjai sukuria objekto kodą, kurį gali tekti susieti naudojant linkerio programas, kad būtų galima paleisti mašinoje, tačiau dauguma vertėjų gali patys atlikti programos vykdymą. Paprastai montuotojas atliks vertimą „vienas prieš vieną“, tačiau tai netaikoma daugumai vertėjų. Kadangi surinkimo kalba susiejama su mašina kodu viena prieš vieną, surinkėjas gali būti naudojamas generuoti kodą, kuris veikia labai efektyviai tais atvejais, kai našumas yra labai svarbus (pvz., Grafikos varikliams, įterptoms sistemoms su ribotais aparatūros ištekliais, palyginti su asmeniniu kompiuteriu). kaip mikrobangų krosnelės, skalbimo mašinos ir kt.). Kita vertus, vertėjai pasitelkiami tada, kai reikia didelio perkeliamumo. Pvz., Tą patį „Java“ baitinį kodą galima paleisti skirtingose platformose naudojant atitinkamą interpretatorių (JVM).