Montētājs vs sastādītājs
Kopumā kompilators ir datorprogramma, kas nolasa vienā valodā rakstītu programmu, ko sauc par avota valodu, un tulko to citā valodā, ko sauc par mērķvalodu. Tradicionāli avota valoda bija augsta līmeņa valoda, piemēram, C ++, un mērķvaloda bija zema līmeņa valoda, piemēram, asamblejas valoda. Tomēr ir kompilatori, kas var konvertēt avota programmu, kas rakstīta asamblejas valodā, un pārveidot to par mašīnkodu vai objekta kodu. Montētāji ir šādi instrumenti. Tātad, gan montētāji, gan kompilatori galu galā ražo kodu, kuru var tieši izpildīt mašīnā.
Kas ir sastādītājs?
Kompilators ir datorprogramma, kas nolasa vienā valodā rakstītu programmu, ko sauc par pirmvalodu, un tulko to citā valodā, ko sauc par mērķvalodu. Visbiežāk avota valoda ir augsta līmeņa valoda, un mērķvaloda ir zema līmeņa valoda. Tātad kopumā sastādītājus var uzskatīt par tulkotājiem, kuri tulko no vienas valodas uz otru. Turklāt kompilatori veic dažas koda optimizācijas. Tipisks kompilators sastāv no vairākiem galvenajiem komponentiem. Pirmais komponents ir skeneris (pazīstams arī kā leksiskais analizators). Skeneris nolasa programmu un pārveido to par žetonu virkni. Otrais komponents ir parsētājs. Tas pārveido marķieru virkni parsēšanas kokā (vai abstraktā sintakses kokā), kas uztver programmas sintaktisko struktūru. Nākamā sastāvdaļa ir semantiskās rutīnas, kas interpretē sintaktiskās struktūras semantiku. Tam seko koda optimizācija un koda ģenerēšana.
Kas ir montētājs?
Assembler ir programmatūra vai rīks, kas tulko montāžas valodu mašīnas kodā. Tātad, montētājs ir kompilatora veids, un avota kods ir rakstīts asamblejas valodā. Asambleja ir cilvēkiem lasāma valoda, taču tai parasti ir savstarpējas attiecības ar atbilstošo mašīnkodu. Tāpēc tiek teikts, ka montētājs veic izomorfu (viens pret vienu kartēšanu) tulkojumu. Uzlabotie montētāji nodrošina papildu funkcijas, kas atbalsta programmu izstrādi un atkļūdošanas procesus. Piemēram, montāžas veids, ko sauc par makro montētājiem, nodrošina makro iespēju.
Kāda ir atšķirība starp montētāju un sastādītāju?
Kompilators ir datorprogramma, kas nolasa vienā valodā rakstītu programmu un tulko to citā valodā, savukārt montētāju var uzskatīt par īpašu kompilatora veidu, kas mašīnkodā tulko tikai asamblejas valodu. Kompilatori parasti ražo mašīnas izpildāmo kodu tieši no augsta līmeņa valodas, bet montētāji izveido objekta kodu, kas, iespējams, būs jāsaista, izmantojot saites programmas, lai palaistu mašīnā. Tā kā asamblejas valodai ir viens pret vienu kartējums ar mašīnkodu, montētāju var izmantot, lai izveidotu kodu, kas darbojas ļoti efektīvi gadījumos, kad veiktspēja ir ļoti svarīga (piemēram, grafikas dzinējiem, iegultām sistēmām ar ierobežotiem aparatūras resursiem, salīdzinot ar personālo datoru piemēram, mikroviļņu krāsnis, veļas mazgājamās mašīnas utt.).