Introduksjon til C # Compilers

I artikkel C # Compiler er Compiler et program som konverterer kildekoden (koden skrevet av en hvilken som helst utvikler på et hvilket som helst språk) til maskinlæringsspråk, slik at den kunne forstås av prosessoren. Prosessoren er den viktigste delen av datamaskinen som bare forstår maskinkoder. Så det er obligatorisk å konvertere alle språkkoder til maskinkoder.

I C # kjører vi kompilatorene, den tar kode som inngangsparameter og utfører litt prosessering, etter prosessering gir den utdata på mellomspråket. Denne utdata lagres i * .dll- eller * .exe-filer

Så etter det mellomliggende språket som ble generert, krevde vi å konvertere denne IL til maskinkoder fordi prosessoren bare forsto maskinkoder. Så vi brukte CLR (Common Language Runtime) for denne konverteringen. CLR er et program som kjører på datamaskinen og endrer IL-koden til maskinkoder ved hjelp av Just-In-Time (ofte kalt JIT). Når vi dobbeltklikket på .exe-filen blir JIT-kompilatoren påkalt og kompilerer IL-koden på den delen av tiden, så det er derfor den heter JUST-IN-TIME (JIT).

Sammenstilling kan gjøres underforstått eller eksplisitt. Den implisitte samlingen er to ganger samlingen der den først er satt sammen IS, og deretter blir den samlet til maskinspråk. Denne prosessen kalles JIT-kompilering eller JUST-In-Time-kompilering. JIT støtter flere plattformer og fremskynder utførelsen av koden.

Typer Just-in-Time-kompilator

Det er tre forskjellige Just-In-Time Compiler

1. Pre JIT-kompilatoren

I denne kompilatoren er det bare en enkelt samlingsprosess ettersom hele kildekoden er samlet til den innfødte koden.

2. Normal JIT-kompilator

I denne kompilatoren blir bare disse metodene sammenstilt til maskinkode, noe som kreves ved kjøretid. Kompilatoren samler disse metodene, lagrer dem i hurtigbufferen og brukte den samme metoden på nytt.

3. Econo JIT-kompilator

I denne kompilatoren blir bare disse metodene sammenstilt til maskinkode som kreves på en kjøretid, men disse metodene fjernes hvis de ikke er nødvendige. I JIT er det bare den nødvendige metoden som er kompilert på kjøretid, og derfor krever den mindre minnebruk.

I diagrammet over

1-3 trinn vil utføres på kompileringstidspunktet

3-5 trinn vil utføres ved kjøretid.

Så når vi kjører oppstår disse to typer feil.

Kjørtidsfeil og kompilatorfeil

  • Kompilatorfeil: Denne typen feil oppstår i selve C # -kompilatoren. Det forhindrer at C # -koden samles i .exe-format. Disse feilene skjedde i utgangspunktet på grunn av syntaksfeil. Når vi stavet feil syntaks eller savner komma eller semikolon, forsto kompilatoren ikke dette, så det stopper behandlingen og kaster kompilertidfeilen. Vi kan se disse feilene i outputvinduet til IDE. Så ved å undersøke disse feilene kan vi rette opp koden vår.
  • Kjøringsfeil: Dette er sanntidsfeil. Disse oppstår når kode er kompilert vellykket, men støter på problemer under kjøring. Dette påvirker atferden til koden. Vi kan for eksempel si når vi prøver å dele et hvilket som helst tall med null på det tidspunktet det oppstår kjøretidsfeil. Disse feilene er mer kjedelige enn kompilatorfeil fordi vi i dette tilfellet må utbedre kodenes oppførsel.

Type C # Kompilatorer

Tidligere Microsoft-kompilatorer ble navngitt som .Net Framework som C # compiler 2.0, C # compiler 3.5, C # compiler 4.x, etc. Disse kompilatorene ble ikke skrevet i C #, eller vi kan si C # var ikke kompilert av C #. De andre kompilatorene som ble til etter dette er:

1. Roslyn

Tidligere ble kompilatoren skrevet i C / C ++. Roslyn er åpen kildekode. Net-kompilator der C ++ -koden erstattes. Den henter typene elementer i kode, deres forhold til hverandre. Ettersom C # og VB-team skrev kompilatoren, er visuelle studiomaler derfor tilgjengelige for begge. Det lar oss skrive kode som analyserer en kildefil, og det er enkelt for oss å endre kildekoden.

Følgende er de fire API-lagene til Roslyn

  • Skripts API: Dette laget gir en kjøringssekvens for kjøring og lar oss bruke C # som skriptspråk og har ingen avhengigheter av visuelle studiokomponenter.
  • Compiler API: Dette laget brukes til syntaks og inneholder referanser for samlinger og kildekodefiler. Dette laget har heller ingen avhengigheter av visuelle studiokomponenter.
  • Tjeneste-API: Dette laget inneholder IntelliSense, formatering, Finn alle referanser osv. På toppen av SDK. Det hjelper også med å håndtere informasjon om prosjektet og administrere prosjektavhengigheter.
  • Workspace API: Dette laget er hovedsakelig for analyse av kode og refactoring gjennom IDEer. Roslyn gjør koden enklere og består av et sett med API-er som kompilator og service som gir mange funksjoner som formatering, Intellisense, etc. Den gir støtte til flere språk. Arbeidsområde APIer gir dyp informasjon om kildekode.

2. Mono-kompilatorer

Mono C # kompilator basert på ECMA standarder for C #. Den har flere versjoner med et rammeverk som C # 1.0, 2.0, 3.0, 4.0. Mono-kompilatoren mcs målramme 1.1, gmcs målramme 2.0 mens smcs og dmcs målramme henholdsvis 2.1 og 4.0.

  • mcs: Den støtter alle C # 1.1-funksjoner som anonyme metoder, nullable typer, faste buffere, tilgangsmodifiserere på egenskaper, statiske klasser, etc.
  • gmcs : Den støtter C # 2.0-funksjoner som spørringsuttrykk, objektinitieringsprogrammer, delvise metoder, lambda-uttrykk, automatisk implementerte egenskaper, etc.
  • dmcs : Den støtter C # 4.0-funksjoner som inkluderer navngitte argumenter, generisk type varians, dynamikkbinding, etc.

Den andre kompilatoren som RemObjects C # -kompilator som følger C # standard i henhold til EMCA-spesifikasjon og annet enn at det er GNU C # -kompilatorer som implementerer C # og .Net.

Konklusjon

C # -kompilator er akkurat som alle andre kompilatorer som kompilerer kode til maskinkode slik at prosessoren kan forstå prosessen.

Anbefalt artikkel

Dette har vært en guide til Data Mining Tool. Her diskuterer vi en introduksjon til C #-kompilatorer og forskjellige typer Just-In-Time Compiler og C # Compilers. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Python-kompilatorer
  2. Java-kompilatorer
  3. Beste C-kompilatorer
  4. Beste Java-kompilatorer
  5. Guide til PHP Compiler
  6. Få tilgang til modifikatorer i PHP