Uvod u C # sastavljače

U članku C # Compiler, Compiler je softverski program koji pretvara izvorni kod (kôd koji je na bilo kojem jeziku napisao bilo koji programer) u stroj strojnog učenja tako da ga procesor može razumjeti. Procesor je najvažniji dio računala koji razumije samo strojne kodove. Dakle, obvezno je bilo koji jezični kod pretvoriti u strojne kodove.

U C # pokrećemo prevoditelje, on uzima kôd kao ulazni parametar i obavlja određenu obradu, nakon obrade daje izlaz na srednjem jeziku. Ovaj se izlaz sprema u datoteke * .dll ili * .exe

Nakon generiranog intermedijarnog jezika, ovaj IL smo morali pretvoriti u strojne kodove jer je procesor razumio samo strojne kodove. Stoga smo za ovu pretvorbu koristili CLR (Common Language Runtime). CLR je program koji se pokreće na računalu i mijenja IL kôd u strojne kodove uz pomoć Just-In-Time (obično se naziva JIT). Kad dvaput kliknemo na .exe datoteku, JIT prevodilac se poziva u tom dijelu vremena i sastavlja IL kod, pa se zato i naziva JUST-IN-TIME (JIT).

Kompilacija se može učiniti implicitno ili eksplicitno. Implicitna kompilacija je dvaput kompilacija u kojoj se prvo sastavlja IS, a nakon toga sastavlja na strojnom jeziku. Taj se postupak naziva JIT kompilacija ili JUST-in-Time kompilacija. JIT podržava više platformi i ubrzava izvršavanje koda.

Vrste prevoditelja s pravim rokom

Postoje tri različita Just-in-Time sastavljača

1. Pre JIT prevodilac

U ovom prevoditelju postoji samo jedan postupak kompilacije, jer se cijeli izvorni kod sastavlja u nativni kod.

2. Normalni JIT prevodilac

U ovom se prevoditelju samo one metode sastavljaju u strojni kod, koji su potrebni u vrijeme izvođenja. Kompajler sastavlja te metode, sprema ih u predmemoriju i ponovo koristi istu metodu.

3. Econo JIT prevodilac

U ovom se prevoditelju samo one metode sastavljaju u strojni kod koji je potreban u vrijeme izvođenja, no te se metode uklanjaju ako nisu potrebne. U JIT-u se sastavlja samo tražena metoda u vrijeme izvođenja, pa zahtijeva i manju potrošnju memorije.

U gornjem dijagramu

1-3 koraka izvršavat će se u vrijeme sastavljanja

3-5 koraka izvrši se u vrijeme izvođenja.

Dakle, pri pokretanju ove dvije vrste dolazi do pogreške.

Pogreške pri izvođenju i pogreške sastavljača

  • Pogreške prevoditelja: Ova vrsta pogreške pojavljuje se u samom prevoditelju C #. Sprječava da se C # kôd sastavi u .exe formatu. Ove se pogreške u osnovi događaju zbog pogreške sintakse. Kada smo pogrešno napisali bilo koju sintaksu ili propustili zarez ili zarez, onda prevoditelj to nije razumio, pa zaustavlja obradu i baca pogrešku u vremenu sastavljanja. Te pogreške možemo vidjeti u izlaznom prozoru IDE-a. Dakle, ispitivanjem ovih grešaka možemo ispraviti svoj kod.
  • Pogreške rute: Ovo su pogreške u stvarnom vremenu. Do njih dolazi kada se uspješno sastavi kôd, ali nailaze na probleme prilikom pokretanja. To utječe na ponašanje koda. Na primjer, možemo reći kada pokušavamo podijeliti bilo koji broj s nulom u tom trenutku dolazi do pogreške vremena. Te su pogreške zamornije od pogrešaka prevoditelja jer u ovom slučaju trebamo ispraviti ponašanje koda.

Vrsta sastavaca C #

Raniji Microsoftovi prevodioci imenovani su kao .Net Framework poput C # prevodilaca 2.0, C # prevoditelja 3.5, C # prevodilaca 4.x itd. Ti kompajleri nisu napisani u C # ili možemo reći da C # nije sastavio C #. Ostali prevoditelji koji su nastali nakon ovoga su:

1. Roslyn

Ranije je prevoditelj pisao u C / C ++. Roslyn je open source .Net prevodilac u kojem se zamjenjuje C ++ kôd. Dohvaća vrste elemenata u kodu, njihov međusobni odnos. Kako su timovi C # i VB napisali prevodilac, tako su vizualni predlošci studija dostupni za oboje. Omogućuje nam pisanje koda koji analizira izvornu datoteku i lako nam je mijenjati izvorni kod.

Slijede četiri sloja Roslyna API-ja

  • API za skripte: Ovaj sloj pruža kontekst izvršenja vremena i omogućava nam korištenje C # kao skriptnog jezika i nema ovisnosti o komponentama vizualnog studija.
  • Compiler API: Ovaj sloj koristi se za sintaksu i sadrži reference za sklopove i datoteke izvornog koda. Ovaj sloj također nema ovisnosti o komponentama vizualnog studija.
  • Service API: Ovaj sloj pruža IntelliSense, oblikovanje, pronalazak svih referenci itd. Na vrhu SDK-a. Također pomaže u upravljanju informacijama o projektu i upravljanju ovisnostima o projektu.
  • API radnog prostora: Ovaj se sloj uglavnom koristi za analizu koda i refaktoring kroz IDE. Roslyn olakšava kôd i sastoji se od skupa API-ja poput pregovarača i servisa koji pruža brojne funkcionalnosti poput oblikovanja, Intellisense itd. Omogućuje podršku više jezika. API-ji radnog prostora pružaju detaljne informacije o izvornom kodu.

2. Mono sastavljači

Mono C # prevodilac temeljen na ECMA standardima za C #. Ima više verzija s okvirom poput C # 1.0, 2.0, 3.0, 4.0. Monopolagač mcs cilja okvir 1.1, gmcs cilja okvir 2.0, dok smcs i dmcs ciljaju okvire 2.1 i 4.0.

  • mcs: Podržava sve značajke C # 1.1 poput anonimnih metoda, varijabilnih tipova, fiksnih međuspremnika, modifikatora pristupa na svojstvima, statičkih klasa itd.
  • gmcs : Podržava C # 2.0 značajke kao izraze upita, objektni inicijalizatori, djelomične metode, lambda izrazi, automatski implementirana svojstva itd.
  • dmcs : Podržava C # 4.0 značajke koje uključuju imenovane argumente, varijancu generičkog tipa, dinamičko vezivanje itd.

Drugi prevoditelj poput RemObjects C # prevodila koji slijedi C # standard prema EMCA specifikaciji i osim toga, postoje GNU C # prevoditelji koji implementiraju C # i .Net.

Zaključak

C # prevodilac je kao i svaki drugi prevodilac koji sastavlja kod u strojni kod kako bi procesor mogao razumjeti postupak.

Preporučeni članak

Ovo je vodič za Alat za vađenje podataka. Ovdje smo razgovarali o uvodu C # prevodilaca i različitim vrstama Just-in-Time kompajlera i C # prevodilaca. Možete i proći naše druge predložene članke da biste saznali više -

  1. Python sastavljači
  2. Kompajleri Java
  3. Najbolji C sastavljači
  4. Najbolji Java sastavljači
  5. Vodič za PHP Compiler
  6. Pristupite modifikatorima na PHP-u

Kategorija: