Úvod do kompilátorov C #

V článku C # Compiler je kompilátor softvérový program, ktorý prevádza zdrojový kód (kód napísaný ktorýmkoľvek vývojárom v akomkoľvek jazyku) na strojový učiaci sa jazyk, aby ho procesor mohol pochopiť. Procesor je najdôležitejšou časťou počítača, ktorá rozumie iba strojovým kódom. Preto je povinné prevádzať akýkoľvek kód jazyka na strojové kódy.

V C # spustíme kompilátory, vezme kód ako vstupný parameter a vykoná určité spracovanie, po spracovaní poskytne výstup v strednom jazyku. Tento výstup je uložený v súboroch * .dll alebo * .exe

Po vytvorení prechodného jazyka sme teda museli previesť tento IL na strojové kódy, pretože procesor rozumel iba strojovým kódom. Preto sme pre túto konverziu použili CLR (Common Language Runtime). CLR je program, ktorý beží na počítači a mení kód IL na strojové kódy pomocou programu Just-In-Time (bežne sa nazýva JIT). Keď sme dvakrát klikli na súbor .exe, vyvolá sa kompilátor JIT a skompiluje kód IL v tejto časti času, preto sa nazýva JUST-IN-TIME (JIT).

Zostavenie sa môže vykonať implicitne alebo explicitne. Implicitná kompilácia je dvojitá kompilácia, v ktorej je najprv kompilovaná IS a potom je kompilovaná do strojového jazyka. Tento proces sa nazýva kompilácia JIT alebo kompilácia JUST-In-Time. JIT podporuje viac platforiem a zrýchľuje vykonávanie kódu.

Typy kompilátora Just-In-Time

Existujú tri rôzne kompilátory Just-In-Time

1. Pre kompilátor pred JIT

V tomto kompilátore existuje iba jeden proces kompilácie, pretože celý zdrojový kód sa kompiluje do natívneho kódu.

2. Normálny kompilátor JIT

V tomto kompilátore sa do strojového kódu kompilujú iba tieto metódy, ktoré sa vyžadujú v čase vykonávania. Kompilátor kompiluje tieto metódy, uloží ich do vyrovnávacej pamäte a znova použije rovnakú metódu.

3. Kompilátor Econo JIT

V tomto kompilátore sa do strojového kódu kompilujú iba tie metódy, ktoré sa vyžadujú v čase vykonávania, avšak tieto metódy sa odstránia, ak sa nevyžadujú. V JIT je v čase vykonávania zostavená iba požadovaná metóda, preto si vyžaduje menšie využitie pamäte.

Vo vyššie uvedenom diagrame

1-3 kroky sa vykonajú v čase kompilácie

V čase vykonávania sa vykoná 3-5 krokov.

Takže keď spustíme tieto dva typy chýb sa vyskytnú.

Chyby za behu a chyby kompilátora

  • Chyby kompilátora: Tento typ chyby sa vyskytuje v samotnom kompilátore C #. Zabraňuje skompilovaniu kódu C # do formátu .exe. Tieto chyby sa v zásade vyskytujú v dôsledku syntaktickej chyby. Keď sme nesprávne napísali syntax alebo vynechali čiarku alebo bodkočiarku, kompilátor to nepochopil, takže zastaví spracovanie a vyvolá chybu kompilácie. Tieto chyby vidíme vo výstupnom okne IDE. Preskúmaním týchto chýb môžeme opraviť náš kód.
  • Chyby runtime: Jedná sa o chyby v reálnom čase. Tieto sa vyskytujú, keď je kód zostavený úspešne, ale počas behu narazia na problémy. To má vplyv na správanie sa kódu. Napríklad môžeme povedať, keď sa pokúsime deliť ľubovoľné číslo nulou, keď sa vyskytne chyba času spustenia. Tieto chyby sú únavnejšie ako chyby kompilátora, pretože v tomto prípade musíme napraviť správanie kódu.

Typ kompilátorov C #

Skoršie kompilátory spoločnosti Microsoft boli pomenované ako .Net Framework ako C # kompilátor 2.0, C # kompilátor 3.5, C # kompilátor 4.x atď. Ďalšími kompilátormi, ktoré vznikli potom, sú:

1. Roslyn

Skôr bol kompilátor napísaný v jazyku C / C ++. Roslyn je open source .Net kompilátor, v ktorom je nahradený C ++ kód. Získava typy prvkov v kóde, ich vzájomný vzťah. Ako kompilátory napísali tímy C # a VB, šablóny vizuálneho štúdia sú preto k dispozícii pre obidva. Umožňuje nám písať kód, ktorý analyzuje zdrojový súbor, a je pre nás ľahké modifikovať zdrojový kód.

Nasledujú štyri vrstvy API Roslynu

  • Skriptovacie API: Táto vrstva poskytuje kontext vykonávania runtime a umožňuje nám používať C # ako skriptovací jazyk a nemá závislosť od komponentov vizuálneho štúdia.
  • Compiler API: Táto vrstva sa používa na syntax a obsahuje odkazy na zostavy a súbory zdrojového kódu. Táto vrstva tiež nezávisí od komponentov vizuálneho štúdia.
  • Service API: Táto vrstva poskytuje IntelliSense, formátovanie, nájsť všetky referencie atď. V hornej časti sady SDK. Pomáha tiež pri správe informácií o projekte a riadení závislostí projektu.
  • Workspace API: Táto vrstva je určená hlavne na analýzu kódu a refaktoring prostredníctvom IDE. Roslyn zjednodušuje kód a skladá sa zo súboru API, ako je kompilátor a služba, ktorá poskytuje mnoho funkcií, ako je formátovanie, Intellisense atď. Poskytuje podporu viacerým jazykom. Rozhrania API pracovného priestoru poskytujú podrobné informácie o zdrojovom kóde.

2. Mono kompilátory

Kompilátor Mono C # založený na štandardoch ECMA pre C #. Má viac verzií s rámcom ako C # 1.0, 2.0, 3.0, 4.0. Mono kompilátor mcs zacieľuje na rámec 1.1, gmcs zacieľuje na rámec 2.0, zatiaľ čo SMC a dmcs sa zameriavajú na rámec 2.1 a 4.0.

  • mcs: Podporuje všetky funkcie C # 1.1, ako sú anonymné metódy, nulové typy, pevné vyrovnávacie pamäte, modifikátory prístupu k vlastnostiam, statické triedy atď.
  • gmcs : Podporuje funkcie C # 2.0, ako sú výrazy dotazov, inicializátory objektov, parciálne metódy, lambda výrazy, automaticky implementované vlastnosti atď.
  • dmcs : Podporuje funkcie C # 4.0, ktoré zahŕňajú pomenované argumenty, generické rozptyly typov, dynamické viazanie atď.

Ďalší kompilátor ako RemObjects C # kompilátor, ktorý dodržiava štandard C # podľa špecifikácie EMCA a iný ako kompilátor GNU C #, ktorý implementuje C # a .Net.

záver

Kompilátor C # je rovnako ako akýkoľvek iný kompilátor, ktorý kompiluje kód do strojového kódu, aby procesor mohol proces pochopiť.

Odporúčaný článok

Toto bol sprievodca Nástrojom na dolovanie údajov. Tu uvádzame úvod do kompilátorov C # a rôznych typov kompilátorov Just-In-Time a C #. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Kompilátory Python
  2. Kompilátory Java
  3. Najlepšie kompilátory C.
  4. Najlepšie Java kompilátory
  5. Sprievodca PHP kompilátorom
  6. Modifikátory prístupu v PHP

Kategórie: