Montieris vs tulks
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 ir augsta līmeņa valoda, piemēram, C ++, un mērķvaloda ir 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. No otras puses, tulki ir rīki, kas izpilda instrukcijas, kas rakstītas kādā programmēšanas valodā. Tulks var tieši izpildīt augsta līmeņa avota kodu vai tulkot tos starpposma kodā un pēc tam interpretēt to vai izpildīt iepriekš sastādītu kodu.
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.
Kas ir tulks?
Tulks ir datorprogramma vai rīks, kas izpilda programmēšanas instrukcijas. Tulks var vai nu tieši izpildīt avota kodu, vai arī pārveidot avotu par starpposma kodu, un tieši to izpildīt, vai arī izpildīt iepriekš sastādītu kodu, ko izveidojis kompilators (dažās tulku sistēmās šim uzdevumam ir kompilators). Valodas, piemēram, Perl, Python, MATLAB un Ruby, ir to programmēšanas valodu piemēri, kurās tiek izmantots starpposma kods. UCSD Pascal interpretē iepriekš sastādītu kodu. Valodas, piemēram, Java, BASIC un Samlltalk, vispirms apkopo avotu starpposma kodam, ko sauc par baitskodu, un pēc tam to interpretē.
Kāda ir atšķirība starp montētāju un tulku??
Montāžu var uzskatīt par īpaša veida kompilatoru, kas tulko montāžas valodu tikai uz mašīnu kodu. Tulki ir rīki, kas izpilda instrukcijas, kas rakstītas kādā valodā. Tulkotāju sistēmās var būt iekļauts kompilators, lai pirms interpretācijas iepriekš sastādītu kodu, bet tulku nevar saukt par īpaša veida kompilatoru. Montētāji ražo objekta kodu, kas, iespējams, ir jāsaista, izmantojot linkera programmas, lai darbotos mašīnā, taču vairums tulku programmas izpildi var pabeigt paši. Montētājs parasti veiks tulkojumu viens pret vienu, bet tas neattiecas uz lielāko daļu tulku. 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.). No otras puses, tulkus izmanto, ja nepieciešama augsta pārnesamība. Piemēram, to pašu Java bytecode var palaist dažādās platformās, izmantojot atbilstošo tulku (JVM).