Atšķirība starp montētāju un kompilatoru

Atšķirība starp montētāju un kompilatoru
Atšķirība starp montētāju un kompilatoru

Video: Atšķirība starp montētāju un kompilatoru

Video: Atšķirība starp montētāju un kompilatoru
Video: Which Tokyo Disney Theme Park Is Better? Disneyland VS Disneysea! 2024, Novembris
Anonim

Assembler vs Compiler

Kopumā kompilators ir datorprogramma, kas nolasa programmu, kas rakstīta vienā valodā, ko sauc par avota valodu, un pārtulko 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ķa valoda bija zema līmeņa valoda, piemēram, montāžas valoda. Tomēr ir kompilatori, kas var konvertēt Assembly valodā rakstītu avota programmu un pārvērst to mašīnkodā vai objekta kodā. Montētāji ir tādi instrumenti. Tātad gan montieri, gan kompilatori galu galā ražo kodu, ko var tieši izpildīt mašīnā.

Kas ir kompilators?

Compiler ir datorprogramma, kas nolasa programmu, kas rakstīta vienā valodā, ko sauc par avota valodu, un pārtulko to citā valodā, ko sauc par mērķa valodu. Visbiežāk avota valoda ir augsta līmeņa valoda, un mērķa valoda ir zema līmeņa valoda. Tātad kopumā kompilatorus var uzskatīt par tulkotājiem, kas tulko no vienas valodas uz citu. 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ārvērš to par žetonu virkni. Otrais komponents ir parsētājs. Tas pārveido marķieru virkni parsēšanas kokā (vai abstraktā sintakses kokā), kas atspoguļo programmas sintaktisko struktūru. Nākamais komponents ir semantiskās rutīnas, kas interpretē sintaktiskās struktūras semantiku. Tam seko koda optimizācija un galīgā koda ģenerēšana.

Kas ir montētājs?

Assembler ir programmatūra vai rīks, kas pārvērš Assembly valodu mašīnkodā. Tātad montētājs ir kompilatora veids, un avota kods ir rakstīts montāžas valodā. Asambleja ir cilvēkiem lasāma valoda, taču tai parasti ir viena pret vienu saistība ar atbilstošo mašīnkodu. Tāpēc tiek uzskatīts, ka montētājs veic izomorfu (no viena pret vienu kartēšanu) tulkojumu. Uzlabotie montieri nodrošina papildu līdzekļus, kas atbalsta programmu izstrādes un atkļūdošanas procesus. Piemēram, montētāju veids, ko sauc par makro montētājiem, nodrošina makro iespēju.

Kāda ir atšķirība starp montētāju un kompilatoru?

Compiler ir datorprogramma, kas nolasa vienā valodā rakstītu programmu un pārtulko to citā valodā, savukārt montētāju var uzskatīt par īpašu kompilatora veidu, kas mašīnkodā pārvērš tikai montāžas valodu. Kompilatori parasti ražo mašīnas izpildāmo kodu tieši no augsta līmeņa valodas, bet montieri veido objekta kodu, kas, iespējams, ir jāsaista, izmantojot saistīšanas programmas, lai tas darbotos mašīnā. Tā kā montāžas valodai ir kartēšana viens pret vienu ar mašīnkodu, montāžas rīku 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īdzinājumā ar personālo datoru). piemēram, mikroviļņu krāsnis, veļas mašīnas utt.).

Ieteicams: