Introduktion till C # Compilers

I artikel C # Compiler är Compiler ett program som konverterar källkod (koden skriven av alla utvecklare på vilket språk som helst) till maskininlärningsspråk så att den kan förstås av processorn. Processorn är den viktigaste delen av datorn som bara förstår maskinkoder. Så det är obligatoriskt att konvertera alla språkkoder till maskinkoder.

I C # kör vi kompilatorerna, det tar kod som inmatningsparameter och utför en del bearbetning, efter bearbetning ger det utdata på mellanspråk. Denna utgång sparas i * .dll- eller * .exe-filer

Så efter det mellanliggande språket som genererades krävde vi att konvertera detta IL till maskinkoder eftersom processorn bara förstod maskinkoder. Så vi använde CLR (Common Language Runtime) för denna konvertering. CLR är ett program som körs på datorn och ändrar IL-koden till maskinkoder med hjälp av Just-In-Time (vanligtvis kallad JIT). När vi dubbelklickade på .exe-filen aktiveras JIT-kompilatorn och sammanställer IL-koden vid den delen av tiden, så det är därför den heter JUST-IN-TIME (JIT).

Sammanställning kan göras implicit eller tydligt. Den implicita sammanställningen är två gånger sammanställning där den först sammanställs IS och därefter sammanställs den till maskinspråk. Denna process kallas JIT-sammanställning eller JUST-In-Time-sammanställning. JIT stöder flera plattformar och påskyndar körningen av koden.

Typer av Just-in-Time Compiler

Det finns tre olika Just-In-Time Compiler

1. Pre JIT-kompilator

I denna kompilator finns det bara en enda sammanställningsprocess eftersom hela källkoden sammanställs till den inbyggda koden.

2. Normal JIT-kompilator

I denna kompilator sammanställs endast dessa metoder till maskinkod, vilket krävs vid körning. Compilern sammanställer dessa metoder, lagrar dem i cachen och använde samma metod igen.

3. Econo JIT-kompilator

I denna kompilator sammanställs endast dessa metoder till maskinkod som krävs vid körning men dessa metoder tas bort om de inte krävs. I JIT sammanställs endast den erforderliga metoden vid körning, därför kräver den mindre minnesanvändning.

I ovanstående diagram

1-3 steg utförs vid sammanställningstiden

3-5 steg utförs vid körning.

Så när vi kör dessa två typer av fel inträffar.

Run-Time-fel och Compiler-fel

  • Kompilatorfel: Den här typen av fel inträffar i själva C # -kompilatorn. Det förhindrar att C # -koden sammanställs i .exe-format. Dessa fel inträffade i princip på grund av syntaxfel. När vi stavade någon syntax eller missar komma eller semikolon så förstod kompilatorn inte detta så det stoppar behandlingen och kastar kompileringstiden. Vi kan se dessa fel i utdatafönstret för IDE. Så genom att undersöka dessa fel kan vi korrigera vår kod.
  • Runtime-fel: Det här är fel i realtid. Dessa inträffar när kod komponeras framgångsrikt men stöter på problem under körning Detta påverkar kodens beteende. Vi kan till exempel säga när vi försöker dela valfritt nummer med noll vid den tidpunkten. Dessa fel är mer tråkiga än kompilatorfel eftersom vi i det här fallet måste korrigera kodens beteende.

Typ av C # kompilatorer

Tidigare namngavs Microsoft-kompilatorer som .Net Framework som C # compiler 2.0, C # compiler 3.5, C # compiler 4.x, etc. Dessa kompilatorer skrevs inte i C # eller vi kan säga att C # inte kompilerades av C #. De andra kompilatorerna som kom till efter detta är:

1. Roslyn

Tidigare skrivs kompilatorn i C / C ++. Roslyn är öppen källkod. Nätkompilerare där C ++ -koden ersätts. Den hämtar typer av element i koden, deras förhållande till varandra. Eftersom C # och VB-team skrev kompilatorn, är därför visuella studiomallar tillgängliga för båda. Det gör att vi kan skriva kod som analyserar en källfil och det är lätt för oss att ändra källkoden.

Följande är de fyra API-lagren i Roslyn

  • Skript-API: Detta lager ger en körningskonverteringskontekst och tillåter oss att använda C # som ett skriptspråk och har inga beroende av visuella studiokomponenter.
  • Compiler API: Detta lager används för syntax och innehåller referenser för enheter och källkodfiler. Detta lager har inte heller några beroenden av visuella studiokomponenter.
  • Service API: Det här lagret ger IntelliSense, formatering, Hitta alla referenser etc. på toppen av SDK. Det hjälper också till att hantera information om projektet och hantera projektberoende.
  • Workspace API: Detta lager är främst för analys av kod och refactoring genom IDE: er. Roslyn underlättar koden och består av en uppsättning API: er som kompilator och tjänst som tillhandahåller många funktioner som formatering, Intellisense osv. Det ger stöd för flera språk. Workspace API: er ger djup information om källkod.

2. Monokompilatorer

Mono C # kompilator baserad på ECMA standarder för C #. Den har flera versioner med ett ramverk som C # 1.0, 2.0, 3.0, 4.0. Mono-kompilatorns målram 1.1, gmcs målram 2.0 medan smcs och dmcs målram 2.1 respektive 4.0.

  • mcs: Det stöder alla C # 1.1-funktioner som anonyma metoder, nollbara typer, fasta buffertar, åtkomstmodifierare för egenskaper, statiska klasser, etc.
  • gmcs : Det stöder C # 2.0-funktioner som frågauttryck, objektinitierare, partiella metoder, lambda-uttryck, automatiskt implementerade egenskaper etc.
  • dmcs : Det stöder C # 4.0-funktioner som innehåller namngivna argument, generisk typvarians, dynamikbindning, etc.

Den andra kompilatorn som RemObjects C # kompilator som följer C # standard enligt EMCA specifikation och annat än att det finns GNU C # kompilatorer som implementerar C # och .Net.

Slutsats

C # -kompilator är precis som alla andra kompilatorer som sammanställer kod till maskinkod så att processorn kan förstå processen.

Rekommenderad artikel

Detta har varit en guide till Data Mining Tool. Här diskuterar vi en introduktion till C # kompilatorer och olika typer av Just-In-Time Compiler och C # Compilers. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Python Compilers
  2. Java-kompilatorer
  3. Bästa C-kompilatorer
  4. Bästa Java-kompilatorer
  5. Guide till PHP Compiler
  6. Få åtkomst till modifierare i PHP

Kategori: