Montieris 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ķa 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 pārveidot avota programmu, kas rakstīta montāžas valodā, un pārveidot to uz mašīnas kodu vai objekta kodu. Salikēji ir tādi instrumenti. Tātad, gan montētāji, gan kompilatori galu galā rada kodu, ko var tieši izpildīt mašīnā.
Kas ir kompilators?
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ķa valodu. Visbiežāk avota valoda ir augsta līmeņa valoda, bet mērķvaloda - zema līmeņa valoda. Tātad kopumā kompilatorus var uzskatīt par tulkotājiem, kas tulko no vienas valodas uz otru. Turklāt kompilatori veic dažas koda optimizācijas. Tipisku kompilatoru veido vairāki galvenie komponenti. Pirmais komponents ir skeneris (pazīstams arī kā leksiskais analizators). Skeneris nolasa programmu un pārveido to marķieru virknē. Otrais komponents ir parsētājs. Tas konvertē marķieru virkni par parsēju koku (vai abstraktu sintakse koku), kurā tiek uztverta programmas sintaktiskā struktūra. Nākamais komponents ir semantiskās rutīnas, kas interpretē sintaktiskās struktūras semantiku. Koda optimizēšana un galīgā koda ģenerēšana seko tam.
Kas ir montieris?
Montāža ir programmatūra vai rīks, kas tulko asamblejas valodu uz mašīnas kodu. Tātad, montētājs ir kompilatora tips, un avota kods ir uzrakstīts montāžas valodā. Montāža ir cilvēkiem lasāma valoda, taču tai parasti ir viena pret vienu saistība ar atbilstošo mašīnas kodu. Tāpēc tiek uzskatīts, 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ētāju tips, ko sauc par makro montieriem, nodrošina makro iespēju.
Kāda ir atšķirība starp montētāju un kompilatoru?
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ša veida kompilatoru, kas tulko tikai montāžas valodu uz mašīnu kodu. Kompilatori parasti ražo mašīnas izpildāmu kodu tieši no augsta līmeņa valodas, bet montētāji ražo objekta kodu, kas, iespējams, būs jāsaista, izmantojot linkera programmas, lai darbotos mašīnā. Tā kā montāžas valodai ir viens pret vienu kartēšana ar mašīnas kodu, montētāju var izmantot, lai ražotu kodu, kas darbojas ļoti efektīvi gadījumos, kad veiktspēja ir ļoti svarīga (piemēram, grafikas motoriem, 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.).