Úvod do kompilátorů C #

V článku C # Compiler, Compiler je softwarový program, který převádí zdrojový kód (kód napsaný libovolným vývojářem v jakémkoli jazyce) na strojový jazyk učení tak, aby jej mohl procesor pochopit. Procesor je nejdůležitější částí počítače, která rozumí pouze strojovým kódům. Je tedy nutné převést jakýkoli kód jazyka na strojové kódy.

V C # spustíme kompilátory, vezme kód jako vstupní parametr a provede nějaké zpracování, po zpracování poskytne výstup v přechodném jazyce. Tento výstup je uložen v souborech * .dll nebo * .exe

Po generování přechodného jazyka jsme tedy museli převést tento IL na strojové kódy, protože procesor rozuměl pouze strojovým kódům. Pro tuto konverzi jsme tedy použili CLR (Common Language Runtime). CLR je program, který běží na počítači a mění kód IL na strojové kódy pomocí Just-In-Time (běžně nazývaný JIT). Když jsme dvakrát klikli na soubor EXE, vyvolá se kompilátor JIT a v této části kompiluje kód IL, proto se nazývá JUST-IN-TIME (JIT).

Kompilace může být provedena implicitně nebo explicitně. Implicitní kompilace je kompilace dvakrát, ve které je nejprve kompilován IS a poté je kompilován do strojového jazyka. Tento proces se nazývá kompilace JIT nebo kompilace JUST-In-Time. JIT podporuje více platforem a urychluje provádění kódu.

Typy kompilátoru Just-In-Time

Existují tři různé kompilátory Just-In-Time

1. Kompilátor před JIT

V tomto kompilátoru existuje pouze jediný proces kompilace, protože celý zdrojový kód je kompilován do nativního kódu.

2. Normální kompilátor JIT

V tomto kompilátoru jsou pouze tyto metody kompilovány do strojového kódu, který je vyžadován za běhu. Kompilátor tyto metody zkompiluje, uloží do mezipaměti a znovu použije stejnou metodu.

3. Kompilátor Econo JIT

V tomto kompilátoru jsou do strojového kódu kompilovány pouze tyto metody, které jsou vyžadovány za běhu, ale tyto metody jsou odstraněny, pokud nejsou vyžadovány. V JIT je za běhu kompilována pouze požadovaná metoda, proto vyžaduje méně využití paměti.

Ve výše uvedeném diagramu

1-3 kroky budou provedeny v době kompilace

V době běhu se provede 3-5 kroků.

Když tedy spustíme, dojde k těmto dvěma typům chyb.

Chyby za běhu a chyby kompilátoru

  • Chyby kompilátoru: Tento typ chyby se vyskytuje v samotném kompilátoru C #. Zabraňuje kompilaci kódu C # do formátu .exe. K těmto chybám v zásadě dochází v důsledku syntaktické chyby. Když jsme chybně zadali nějakou syntaxi nebo vynechali čárku nebo středník, kompilátor tomu nerozuměl, takže zastaví zpracování a vyvolá chybu kompilace. Tyto chyby vidíme ve výstupním okně IDE. Zkoumáním těchto chyb tedy můžeme opravit náš kód.
  • Chyby runtime: Jedná se o chyby v reálném čase. K tomu dochází, když je kód zkompilován úspěšně, ale při spuštění se setká s jakýmikoli problémy. To má vliv na chování kódu. Můžeme například říci, že když se pokusíme dělit libovolné číslo nulou, dojde k chybě doby běhu. Tyto chyby jsou únavnější než chyby kompilátoru, protože v tomto případě musíme opravit chování kódu.

Typ kompilátorů C #

Dřívější kompilátory společnosti Microsoft byly pojmenovány jako .Net Framework jako C # kompilátor 2.0, C # kompilátor 3.5, C # kompilátor 4.x atd. Tyto kompilátory nebyly napsány v C # nebo můžeme říci, že C # nebyl kompilován C #. Další kompilátory, které vznikly poté, co jsou:

1. Roslyne

Dříve byl kompilátor psán v C / C ++. Roslyn je open source .Net kompilátor, ve kterém je nahrazen kód C ++. Získává typy prvků v kódu, jejich vzájemný vztah. Jak týmy C # a VB psaly kompilátor, jsou proto k dispozici šablony vizuálních studií pro oba. To nám umožňuje psát kód, který analyzuje zdrojový soubor, a je pro nás snadné modifikovat zdrojový kód.

Následuje čtyři API vrstvy Roslynu

  • Skriptovací API: Tato vrstva poskytuje kontext provádění runtime a umožňuje nám použít C # jako skriptovací jazyk a nemá závislost na komponentách vizuálního studia.
  • Compiler API: Tato vrstva se používá pro syntaxi a obsahuje odkazy na sestavení a soubory zdrojového kódu. Tato vrstva také není závislá na komponentách vizuálního studia.
  • Service API: Tato vrstva poskytuje IntelliSense, formátování, najít všechny reference atd. V horní části sady SDK. Pomáhá také při správě informací o projektu a správě závislostí projektu.
  • Workspace API: Tato vrstva je hlavně pro analýzu kódu a refactoring prostřednictvím IDE. Roslyn usnadňuje kód a skládá se ze sady API, jako je kompilátor a služba, která poskytuje mnoho funkcí, jako je formátování, Intellisense atd. Poskytuje podporu pro více jazyků. Rozhraní API pracovního prostoru poskytují podrobné informace o zdrojovém kódu.

2. Mono kompilátory

Kompilátor Mono C # založený na standardech ECMA pro C #. Má více verzí s rámcem jako C # 1.0, 2.0, 3.0, 4.0. Mono kompilátor mcs zacílí na rámec 1.1, gmcs zacílí na rámec 2.0, zatímco smcs a dmcs se zaměřují na rámec 2.1 a 4.0.

  • mcs: Podporuje všechny funkce C # 1.1, jako jsou anonymní metody, nulové typy, pevné vyrovnávací paměti, modifikátory přístupu k vlastnostem, statické třídy atd.
  • gmcs : Podporuje funkce C # 2.0, jako jsou výrazy dotazů, inicializátory objektů, parciální metody, lambda výrazy, automaticky implementované vlastnosti atd.
  • dmcs : Podporuje funkce C # 4.0, které zahrnují pojmenované argumenty, generické rozptyly typů, dynamické vazby atd.

Další kompilátor jako RemObjects C # kompilátor, který následuje C # standard podle EMCA specifikace a kromě toho existují GNU C # kompilátory implementující C # a .Net.

Závěr

Kompilátor C # je stejně jako jakýkoli jiný kompilátor, který kompiluje kód do strojového kódu, aby procesor mohl proces pochopit.

Doporučený článek

Toto byl průvodce Nástrojem pro dolování dat. Zde diskutujeme úvod do kompilátorů C # a různých typů kompilátorů Just-In-Time a C #. Další informace naleznete také v dalších navrhovaných článcích -

  1. Kompilátory Pythonu
  2. Kompilátory Java
  3. Nejlepší kompilátory C
  4. Nejlepší Java překladače
  5. Průvodce PHP kompilátorem
  6. Přístup modifikátory v PHP

Kategorie: