Introducere în compilatoarele C #

În articolul C # Compiler, Compiler este un program software care transformă codul sursă (Codul scris de orice dezvoltator în orice limbă) în limbaj de învățare a mașinii, astfel încât acesta să poată fi înțeles de către procesor. Procesorul este cea mai importantă parte a computerului care înțelege doar codurile mașinii. Așadar, este obligatoriu să convertiți orice cod de limbă în coduri de mașină.

În C # rulăm compilatoarele, acesta ia codul ca parametru de intrare și efectuează unele prelucrări, după procesare oferă ieșirea în limba intermediară. Această ieșire este salvată în fișiere * .dll sau * .exe

Așadar, după limbajul intermediar generat, am fost nevoiți să convertim acest IL în coduri de mașină, deoarece procesorul a înțeles doar codurile mașinii. Așadar, am folosit CLR (Common Language Runtime) pentru această conversie. CLR este un program care rulează pe computer și schimbă codul IL în coduri de mașini cu ajutorul Just-In-Time (denumit în mod obișnuit JIT). Atunci când am dat dublu clic pe fișierul .exe JIL compilatorul este invocat și compilează codul IL în acea parte a timpului, de aceea este numit JUST-IN-TIME (JIT).

Compilarea se poate face implicit sau explicit. Compilația implicită este de două ori o compilare în care mai întâi, este compilată IS și după aceea, este compilată în limbajul mașinii. Acest proces se numește compilare JIT sau compilare JUST-In-Time. JIT acceptă mai multe platforme și grăbește execuția codului.

Tipuri de Compilator Just-In-Time

Există trei compilatoare Just-In-Time diferite

1. Compilator pre JIT

În acest compilator, există un singur proces de compilare, deoarece întregul cod sursă este compilat în codul nativ.

2. Compilator JIT normal

În acest compilator, numai acele metode sunt compilate în codul mașinii, care este necesar în timpul rulării. Compilatorul compilează acele metode, le stochează în cache și a folosit din nou aceeași metodă.

3. compilator Econo JIT

În acest compilator, numai acele metode sunt compilate în codul mașinii care este necesar într-un timp de rulare, însă aceste metode sunt eliminate dacă nu sunt necesare. În JIT, numai metoda necesară este compilată în timpul rulării, prin urmare, necesită mai puțină utilizare a memoriei.

În diagrama de mai sus

1-3 pași se vor executa la momentul compilării

3-5 pași se vor executa la timpul de rulare.

Deci, atunci când rulăm aceste două tipuri de eroare apare.

Erori de execuție și erori de compilare

  • Erorile compilatorului: Acest tip de eroare apare chiar în compilatorul C #. Împiedică compilarea codului C # în format .exe. Aceste erori sunt practic cauzate de eroarea de sintaxă, atunci când am scris greșit orice sintaxă sau ratăm virgula sau virgula, atunci compilatorul nu a înțeles acest lucru, astfel încât oprește procesarea și aruncă eroarea de compilare. Putem vedea aceste erori în fereastra de ieșire a IDE. Deci, examinând aceste erori, putem rectifica codul nostru.
  • Erori de execuție: acestea sunt erori în timp real. Acestea apar atunci când codul este compilat cu succes, dar întâmpină probleme în timpul rulării. Acest lucru are un impact asupra comportamentului codului. De exemplu, putem spune când încercăm să împărțim orice număr cu zero atunci când apare o eroare de timp. Aceste erori sunt mai obositoare decât erorile compilatorului, deoarece în acest caz, trebuie să rectificăm comportamentul codului.

Tipul compilatoarelor C #

Compilatoarele Microsoft anterioare au fost numite .Net Framework precum C # compilator 2.0, C # compilator 3.5, C # compilator 4.x, etc. Aceste compilatoare nu au fost scrise în C # sau putem spune că C # nu a fost compilat de C #. Ceilalți compilatori care au apărut după aceasta sunt:

1. Roslyn

Anterior, compilatorul a fost scris în C / C ++. Roslyn este un compilator open source. Net în care se înlocuiește codul C ++. Acesta preia tipurile de elemente în cod, relația dintre ele. Deoarece echipele C # și VB au scris compilatorul, așadar, șabloane de studio vizual sunt disponibile pentru ambele. Ne permite să scriem cod care analizează un fișier sursă și ne este ușor să modificăm codul sursă.

Următoarele sunt cele patru straturi API ale Roslyn

  • API de script: Acest strat oferă un context de execuție în timp de rulare și ne permite să folosim C # ca limbaj de script și nu are dependențe de componentele studioului vizual.
  • API-ul Compiler: Acest strat este utilizat pentru sintaxa și conține referințe pentru asamblări și fișiere cod sursă. De asemenea, acest strat nu are dependențe de componentele studioului vizual.
  • Service API: Acest strat oferă IntelliSense, formatarea, Găsirea tuturor referințelor etc. în partea de sus a SDK. De asemenea, ajută la gestionarea informațiilor despre proiect și la gestionarea dependențelor proiectului.
  • API-ul de lucru: Acest strat este destinat în principal pentru analiza codului și refactorizarea prin IDE-uri. Roslyn ușurează codul și constă dintr-un set de API cum ar fi compilatorul și serviciul care oferă multe funcționalități precum formatarea, Intellisense, etc. Acesta oferă suport mai multor limbi. API-urile de lucru oferă informații profunde despre codul sursă.

2. Compilatoare mono

Compilator Mono C # bazat pe standardele ECMA pentru C #. Are mai multe versiuni cu un cadru precum C # 1.0, 2.0, 3.0, 4.0. Compilatorul mono mono vizează cadrul 1.1, gmcs vizează cadrul 2.0, în timp ce smcs și dmcs vizează cadrul 2.1 și, respectiv, 4.0.

  • mcs: acceptă toate caracteristicile C # 1.1 precum metode anonime, tipuri nullable, buffere fixe, modificatori de acces la proprietăți, clase statice etc.
  • gmcs : acceptă caracteristici C # 2.0 precum expresii de interogare, inițializatoare de obiecte, metode parțiale, expresii lambda, proprietăți implementate automat etc.
  • dmcs : acceptă caracteristici C # 4.0 care includ argumente numite, variație generică de tip, legare dinamică etc.

Celălalt compilator precum RemObjects C # compilator, care respectă standardul C # conform specificațiilor EMCA și altceva decât că există compilatoare GN # C care implementează C # și .Net.

Concluzie

Compilatorul C # este la fel ca orice alt compilator care compilează codul în codul mașinii, astfel încât procesorul să înțeleagă procesul.

Articol recomandat

Acesta a fost un ghid pentru Instrumentul de extragere a datelor. Aici discutăm o introducere în compilatoarele C # și diferite tipuri de compilatoare Just-In-Time și Compilatoare C #. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Compilatoare Python
  2. Compilatoare Java
  3. Cele mai bune compilatoare C
  4. Cele mai bune compilatoare Java
  5. Ghid pentru compilatorul PHP
  6. Modificatori de acces în PHP