Uvod v C # prevajalnike

V članku C # Compiler je Compiler programski program, ki pretvori izvorno kodo (kodo, ki jo v katerem koli jeziku napiše kateri koli razvijalec) v strojni jezik učenja, tako da jo lahko razume procesor. Procesor je najpomembnejši del računalnika, ki razume samo strojne kode. Torej je obvezno pretvoriti vsako jezikovno kodo v strojne kode.

V C # zaženemo prevajalnike, vzame kodo kot vhodni parameter in opravi nekaj obdelave, po obdelavi pa poda izhod v vmesnem jeziku. Ta izhod se shrani v datoteke * .dll ali * .exe

Po ustvarjenem vmesnem jeziku smo morali ta IL pretvoriti v strojne kode, ker je procesor razumel le strojne kode. Zato smo za to pretvorbo uporabili CLR (Common Language Runtime). CLR je program, ki se izvaja v računalniku in s pomočjo Just-In-Time (običajno imenovan JIT) spremeni kodo IL v strojne kode. Ko dvakrat kliknemo na .exe datoteko, se v tem delu časa prikliče prevajalnik JIT in v tem času sestavi kodo IL, zato se imenuje JUST-IN-TIME (JIT).

Kompilacija se lahko izvede implicitno ali izrecno. Implicitna kompilacija je dvakratna kompilacija, v kateri je najprej sestavljena IS in zatem sestavljena v strojni jezik. Ta postopek se imenuje JIT kompilacija ali JUST-In-Time kompilacija. JIT podpira več platform in pospeši izvajanje kode.

Vrste prevajalnika Just-in-Time

Obstajajo trije različni Just-In-Time prevajalnik

1. Pred prevajalnik JIT

V tem prevajalniku je samo en postopek kompilacije, saj je celotna izvorna koda sestavljena v izvorno kodo.

2. Običajni prevajalnik JIT

V tem prevajalniku so v strojno kodo zbrane samo tiste metode, ki so potrebne med izvajanjem. Prevajalnik te metode zbere, jih shrani v predpomnilnik in znova uporabi isto metodo.

3. Econo JIT prevajalnik

V tem prevajalniku so v strojno kodo zbrane samo tiste metode, ki so potrebne v času izvajanja, vendar se te metode odstranijo, če niso potrebne. V JIT-ju je v času izvajanja sestavljena samo zahtevana metoda, zato zahteva manjšo porabo pomnilnika.

V zgornjem diagramu

1-3 koraki se bodo izvedli v času prevajanja

3-5 korakov se bo izvedlo v času izvajanja.

Torej, ko izvajamo ti dve vrsti napak pride.

Napake med izvajanjem in napake prevajalnika

  • Napake prevajalnika: Ta vrsta napake se pojavi v samem prevajalniku C #. Prepreči, da bi se koda C # zbrala v .exe formatu. Te napake so v bistvu nastale zaradi napake skladnje. Ko napačno črkamo katerokoli skladnjo ali zgrešimo vejico ali podpičje, potem prevajalnik tega ni razumel, zato ustavi obdelavo in vrže napako časa prevajanja. Te napake lahko vidimo v izhodnem oknu IDE. Torej s preučitvijo teh napak lahko odpravimo svojo kodo.
  • Napake med izvajanjem: To so napake v realnem času. Do tega pride, če je koda uspešno sestavljena, vendar med tekom naletijo na kakršne koli težave. To vpliva na obnašanje kode. Na primer, lahko rečemo, če poskusimo v tem času poljubno število deliti z ničjo. Te napake so bolj mučne kot napake prevajalnika, ker moramo v tem primeru odpraviti vedenje kode.

Vrsta prevajalnikov C #

Predhodni Microsoftovi prevajalniki so bili imenovani kot .Net Framework, kot je C # prevajalnik 2.0, C # prevajalnik 3.5, C # prevajalnik 4.x itd. Ti prevajalniki niso bili napisani v C # ali lahko rečemo, da C # ni sestavil C #. Drugi prevajalniki, ki so nastali po tem, so:

1. Roslyn

Prej je prevajalnik napisan v C / C ++. Roslyn je odprtokodni .Net prevajalnik, v katerem se zamenja koda C ++. Dojema vrste elementov v kodi, njihovo razmerje med seboj. Kot sta ekipi C # in VB napisali prevajalnik, so zato vizualne predloge za studio na voljo za oba. Omogoča nam zapisovanje kode, ki razčleni izvorno datoteko, in enostavno spreminjamo izvorno kodo.

Sledijo štiri plasti Roslyn API-ja

  • API za skriptiranje : Ta plast ponuja kontekst izvajanja izvajanja in nam omogoča uporabo C # kot skriptnega jezika in nima odvisnosti od komponent vizualnega studia.
  • API za prevajalnik: Ta plast se uporablja za sintakso in vsebuje reference za sklope in datoteke izvorne kode. Tudi ta sloj ni odvisen od komponent vizualnega studia.
  • Service API: Ta plast vsebuje IntelliSense, oblikovanje, iskanje vseh referenc itd. Na vrhu SDK. Pomaga tudi pri upravljanju informacij o projektu in urejanju odvisnosti od projekta.
  • API za delovni prostor: Ta plast je v glavnem za analizo kode in refaktoring prek IDE. Roslyn olajša kodo in je sestavljen iz nabora API-jev, kot sta prevajalnik in storitev, ki ponuja številne funkcije, kot so oblikovanje, Intellisense itd. Ponuja podporo več jezikom. API-ji delovnega prostora ponujajo podrobne informacije o izvorni kodi.

2. Mono sestavljalci

Mono C # prevajalnik na podlagi standardov ECMA za C #. Ima več različic z ogrodjem, kot so C # 1.0, 2.0, 3.0, 4.0. Mono prevajalnik mcs cilja okvir 1.1, gmcs cilja okvir 2.0, smcs in dccs pa ciljni okvir 2.1 in 4.0.

  • mcs: Podpira vse funkcije C # 1.1, kot so anonimne metode, izvlečni tipi, fiksni medpomnilniki, modifikatorji dostopa do lastnosti, statični razredi itd.
  • gmcs : Podpira funkcije C # 2.0, kot so poizvedbeni izrazi, inicializatorji predmetov, delne metode, lambda izrazi, samodejno izvedene lastnosti itd.
  • dmcs : Podpira funkcije C # 4.0, ki vključujejo imenovane argumente, generično odstopanje tipa, vezavo dinamike itd.

Drugi prevajalnik, kot je prevajalnik RemObjects C #, ki sledi standardu C # po specifikacijah EMCA in razen, da obstajajo prevajalniki GNU C #, ki izvajata C # in .Net.

Zaključek

C # prevajalnik je tako kot kateri koli drugi prevajalnik, ki zbere kodo v strojno kodo, tako da lahko procesor razume postopek.

Priporočeni članek

To je vodnik za orodje za podatkovno rudarjenje. Tukaj razpravljamo o uvodu v prevajalnike C # in različne vrste Just-in-Time Compiler in C # prevajalnike. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Prevajalci Python
  2. Kompilatorji Java
  3. Najboljši C prevajalci
  4. Najboljši Java Compilers
  5. Vodič za PHP Compiler
  6. Dostop do modifikatorjev v PHP