Kas yra kompiliatorius?
Kompiliatorius yra kompiuterinė programa, kuri aukšto lygio programavimo kalba parašytą kodą paverčia mašininiu kodu. Tai programa, verčianti žmonėms skaitomą kodą į kompiuterio procesoriaus suprantamą kalbą (dvejetainiai 1 ir 0 bitai). Kompiuteris apdoroja mašinos kodą, kad atliktų atitinkamas užduotis.
Kompiliatorius turėtų laikytis tos programavimo kalbos, kuria ji parašyta, sintaksės taisyklės. Tačiau kompiliatorius yra tik programa ir negali ištaisyti toje programoje aptiktų klaidų. Taigi, jei suklydote, turite pakeisti savo programos sintaksę. Priešingu atveju jis nebus kompiliuojamas.
Kas yra vertėjas žodžiu?
Vertėjas yra kompiuterinė programa, kuri kiekvieną aukšto lygio programos teiginį įtraukia į mašinos kodą. Tai apima šaltinio kodą, iš anksto sukompiliuotą kodą ir scenarijus. Tiek kompiliatorius, tiek vertėjai atlieka tą patį darbą, kuris aukštesnio lygio programavimo kalbą paverčia mašininiu kodu. Tačiau kompiliatorius konvertuos kodą į mašininį kodą (sukurs exe) prieš paleidžiant programą. Vertėjai, vykdydami programą, konvertuoja kodą į mašininį kodą.
PAGRINDINIAI SKIRTUMAI
- Kompiliatorius, prieš paleidžiant programą, iš karto paverčia aukšto lygio programavimo kalba parašytą kodą į mašinos kodą, tuo tarpu vertėjas, vykdydamas programą, kiekvieną aukšto lygio programos teiginį po vieną įtraukia į mašininį kodą.
- Kompiliuotas kodas veikia greičiau, o interpretuotas kodas - lėčiau.
- Kompiliatorius rodo visas klaidas po kompiliavimo, kita vertus, vertėjas pateikia kiekvienos eilutės klaidas po vieną.
- Kompiliatorius remiasi vertimo susiejimo-įkėlimo modeliu, o Vertėjas - Interpretacijos metodu.
- Kompiliatorius užima visą programą, o Vertėjas - vieną kodo eilutę.
Kompiliatoriaus ir vertėjo skirtumas
Skirtumo pagrindas | Sudarytojas | Vertėjas |
---|---|---|
Programavimo žingsniai |
|
|
Privalumas | Programos kodas jau yra išverstas į mašininį kodą. Taigi, kodo vykdymo laikas yra trumpesnis. | Vertėjus žodžiu yra lengviau naudoti, ypač pradedantiesiems. |
Trūkumas | Negalite pakeisti programos negrįžę prie šaltinio kodo. | Interpretuotos programos gali veikti kompiuteriuose, kuriuose yra atitinkamas vertėjas. |
Mašinos kodas | Diske saugokite mašinos kalbą kaip mašinos kodą | Visai neišsaugojęs mašinos kodo. |
Veikimo laikas | Kompiliuotas kodas veikia greičiau | Interpretuotas kodas veikia lėčiau |
Modelis | Jis pagrįstas kalbos vertimo susiejimo-pakrovimo modeliu. | Jis pagrįstas aiškinimo metodu. |
Programos generavimas | Generuoja išvesties programą (exe pavidalu), kurią galima paleisti nepriklausomai nuo pradinės programos. | Nekurkite išvesties programos. Taigi jie kiekvieną kartą vykdymo metu vertina šaltinio programą. |
Vykdymas | Programos vykdymas yra atskiras nuo kompiliavimo. Jis buvo atliktas tik tada, kai buvo sudaryta visa išvesties programa. | Programos vykdymas yra interpretavimo proceso dalis, todėl jis atliekamas eilės tvarka. |
Atminties reikalavimas | Tikslinė programa vykdoma nepriklausomai ir nereikia kompiliatoriaus atmintyje. | Vertėjas žodžiu egzistuoja atmintyje. |
Geriausiai tinka | Pririštas prie konkrečios tikslinės mašinos ir negali būti perkeltas. C ir C ++ yra populiariausia programavimo kalba, naudojanti kompiliavimo modelį. | Skirta žiniatinklio aplinkai, kur yra svarbus įkėlimo laikas. Atsižvelgiant į tai, kad atlikta išsami analizė, kompiliavimui užtrunka palyginti daugiau laiko, kad būtų sudarytas net mažas kodas, kuris gali būti paleistas ne kelis kartus. Tokiais atvejais vertėjai žodžiu yra geresni. |
Kodo optimizavimas | Kompiliatorius mato visą kodą iš anksto. Taigi jie atlieka daugybę optimizavimų, kurie leidžia kodui veikti greičiau | Vertėjai vertina kodus eilutėmis, todėl optimizavimas nėra toks tvirtas kaip kompiliatorių |
Dinaminis rašymas | Sunku įdiegti, nes kompiliatoriai negali numatyti, kas vyksta posūkio metu. | Interpretuojamos kalbos palaiko dinaminį rašymą |
Naudojimas | Tai geriausiai tinka gamybos aplinkai | Tai geriausiai tinka programai ir aplinkai. |
Klaidos vykdymas | Kompiliatorius rodo visas klaidas ir įspėjimus kompiliavimo metu. Todėl negalite paleisti programos nepašalinę klaidų | Vertėjas skaito vieną teiginį ir parodo klaidą, jei tokia yra. Norėdami interpretuoti kitą eilutę, turite ištaisyti klaidą. |
Įvestis | Tam reikia visos programos | Tam reikia vienos kodo eilutės. |
Rezultatas | Atitikėjai sugeneruoja tarpinį machnie kodą. | Vertėjas niekada negeneruoja jokio tarpinio machnie kodo. |
Klaidos | Rodyti visas klaidas po, kompiliavimo, visas tuo pačiu metu. | Rodomos visos kiekvienos eilutės klaidos po vieną. |
Programavimo kalbos | C, C ++, C #, Scala, Java visi naudoja reikalavimus. | PHP, Perl, Ruby naudoja vertėją. |
Kompiliatoriaus vaidmuo
- Atlikėjai skaito šaltinio kodą, išleidžia vykdomąjį kodą
- Aukščiausio lygio kalba parašytą programinę įrangą paverčia kompiuteriui suprantamomis instrukcijomis. Jis konvertuoja programuotojo parašytą tekstą į formatą, kurį gali suprasti procesorius.
- Sudarymo procesas yra gana sudėtingas. Jis praleidžia daug laiko analizuodamas ir apdorodamas programą.
- Vykdomas rezultatas yra tam tikros rūšies mašinai būdingas dvejetainis kodas.
Vertėjo žodis
- Vertėjas konvertuoja šaltinio kodą eilutėmis po RUN laiko.
- „Interpret“ visiškai išverčia aukšto lygio kalba parašytą programą į mašininio lygio kalbą.
- Vertėjas leidžia įvertinti ir modifikuoti programą jai vykdant.
- Palyginti mažiau laiko skiriama programos analizei ir apdorojimui
- Programos vykdymas yra palyginti lėtas, palyginti su kompiliatoriumi
AUKŠTO LYGIO KALBOS
Aukšto lygio kalbos, tokios kaip C, C ++, JAVA ir kt., Yra labai artimos anglų kalbai. Tai palengvina programavimo procesą. Tačiau prieš vykdymą jis turi būti išverstas į mašininę kalbą. Šį vertimo procesą atlieka arba kompiliatorius, arba vertėjas. Taip pat žinomas kaip šaltinio kodas.
MAŠINOS KODAS
Mašinų kalbos yra labai artimos aparatinei įrangai. Kiekvienas kompiuteris turi savo mašininę kalbą. Mašininės kalbos programos sudarytos iš dvejetainių šablonų serijų. (Pvz., 110110) Tai reiškia paprastas operacijas, kurias turėtų atlikti kompiuteris. Mašinų kalbos programos yra vykdomos, kad jas būtų galima paleisti tiesiogiai.
OBJEKTO KODAS
Sudarant šaltinio kodą, kompiuterio kodas, sukurtas skirtingiems procesoriams, pvz., „Intel“, AMD, ARM, skiriasi. • Kad kodas būtų nešiojamas, šaltinio kodas pirmiausia konvertuojamas į objekto kodą. Tai tarpinis kodas (panašus į mašinos kodą), kurio nesupras nė vienas procesorius. Vykdymo metu objekto kodas konvertuojamas į pagrindinės platformos mašininį kodą.
„Java“ yra sudaryta ir interpretuojama.
Norint išnaudoti santykinius kompiliatorių pranašumus, vertėjai naudojasi kai kuriomis programavimo kalbomis, tokiomis kaip „Java“. Pats „Java“ kodas yra sukompiliuotas į „Object Code“. Vykdymo metu JVM objekto kodą interpretuoja į tikslinio kompiuterio mašininį kodą.