Sastavljač vs Tumač
Općenito, kompajler je računalni program koji čita program napisan na jednom jeziku, koji se naziva izvornim jezikom, i prevodi ga u drugi jezik, koji se naziva ciljnim jezikom. Tradicionalno je izvorni jezik jezik visoke razine kao što je C ++, a ciljni jezik jezik niske razine kao što je skupštinski jezik. Međutim, postoje prevoditelji koji mogu pretvoriti izvorni program napisan na montažnom jeziku i pretvoriti ga u strojni kod ili objektni kôd. Asembleri su takvi alati. S druge strane, tumači su alati koji izvršavaju upute napisane na nekom programskom jeziku. Tumač može ili izravno izvršiti izvorni kod visoke razine ili ih prevesti u srednji kôd, a zatim ih protumačiti ili izvršiti unaprijed kompilirani kôd.
Što je Asembler?
Asembler je softver ili alat koji prevodi skupštinski jezik u strojni kod. Dakle, asembler je vrsta kompajlera, a izvorni kod napisan je na asemblerskom jeziku. Sastavljanje je razumljiv jezik, ali obično ima jedan prema jedan odnos s odgovarajućim strojnim kodom. Stoga se kaže da asembler izvodi izomorfni (jedan prema jedan preslikavanje) prijevod. Napredni asembleri pružaju dodatne značajke koje podržavaju razvoj programa i procese uklanjanja pogrešaka. Na primjer, tip asemblera koji se nazivaju makro asembleri pruža makro objekt.
Što je tumač?
Tumač je računalni program ili alat koji izvršava programske upute. Tumač može ili izravno izvršiti izvorni kod ili ga pretvoriti u srednji kôd i izravno ga izvršiti ili izvršiti predkompilirani kôd koji je stvorio kompajler (neki sustavi tumača uključuju kompajler za ovaj zadatak). Jezici poput Perl, Python, MATLAB i Ruby primjeri su programskih jezika koji koriste posredni kod. UCSD Pascal tumači unaprijed sastavljeni kôd. Jezici poput Java, BASIC i Samlltalk prvo prevode izvor u srednji kôd koji se naziva bytecode, a zatim ga interpretiraju.
Koja je razlika između sastavljača i tumača?
Asembler se može smatrati posebnom vrstom kompajlera, koji samo prevodi jezik skupštine u strojni kod. Tumači su alati koji izvršavaju upute napisane na nekom jeziku. Interpretacijski sustavi mogu sadržavati prevoditelj za predkompajliranje koda prije tumačenja, ali tumač se ne može nazvati posebnom vrstom kompajlera. Asembleri proizvode objektni kôd, koji će možda morati biti povezan pomoću povezivačkih programa kako bi se izvodio na stroju, ali većina interpretatora može sama izvršiti izvršavanje programa. Asembler će obično napraviti jedan na jedan prijevod, ali to nije istina za većinu tumača. Budući da asemblerski jezik ima mapiranje jedan na jedan sa strojnim kodom, asembler se može koristiti za proizvodnju koda koji se izvodi vrlo efikasno u prilikama u kojima su performanse vrlo važne (npr. Za grafičke motore,ugrađeni sustavi s ograničenim hardverskim resursima u usporedbi s osobnim računalom poput mikrovalnih pećnica, perilica rublja itd.). S druge strane, tumači se koriste kada vam je potrebna visoka prenosivost. Na primjer, isti Java bajt kod može se izvoditi na različitim platformama pomoću odgovarajućeg tumača (JVM).