Увод у Ц # компајлере

У чланку Ц # Цомпилер, Цомпилер је софтверски програм који претвара изворни код (код који је написао било који програмер на било којем језику) у језик машинског учења тако да га процесор може разумети. Процесор је најважнији дио рачунара који разумије само шифре уређаја. Дакле, обавезна је претварање било ког језика у машинске кодове.

У Ц # покрећемо преводиоце, он узима код као улазни параметар и обавља одређену обраду, а након обраде даје излаз на средњем језику. Овај излаз се чува у * .длл или * .еке датотекама

Дакле, након генерисаног интермедијарног језика, потребно је претворити овај ИЛ у машински код јер је процесор разумео само машинске кодове. Стога смо за ову конверзију користили ЦЛР (Цоммон Лангуаге Рунтиме). ЦЛР је програм који се покреће на рачунару и мења ИЛ код у машинске кодове помоћу Јуст-Ин-Тиме (уобичајено званог ЈИТ). Када двапут кликнемо на .еке датотеку, ЈИТ преводилац се позива у том делу времена и саставља ИЛ код, па се зато и назива ЈУСТ-ИН-ТИМЕ (ЈИТ).

Компилација се може обавити имплицитно или експлицитно. Имплицитна компилација је двапут компилација у којој се прво саставља ИС, а након тога компајлира на машински језик. Овај процес се назива ЈИТ компилација или ЈУСТ-ин-Тиме компилација. ЈИТ подржава више платформи и убрзава извршавање кода.

Врсте компајлера који се налази у времену

Постоје три различита Јуст-ин-Тиме компајлера

1. Пре ЈИТ преводилац

У овом преводиоцу постоји само један процес компилације, јер се цео изворни код компајлира у матични код.

2. Нормални ЈИТ преводилац

У овом компајлеру само се оне методе компајлирају у машински код, који је потребан у току рада. Компајлер саставља те методе, смешта их у кеш меморију и поново користи исти метод.

3. Ецоно ЈИТ преводилац

У овом компајлеру само оне методе се компајлирају у машински код који је потребан у току рада, али ове методе се уклањају ако нису потребне. У ЈИТ-у се компилира само потребна метода у току рада, па захтева мању потрошњу меморије.

У горњем дијаграму

1-3 корака ће се извршити у време превођења

3-5 корака ће се извршити у време извођења.

Дакле, када покренемо ове две врсте грешака долази.

Грешке приликом покретања и грешке преводиоца

  • Грешке компајлера: Ова врста грешке се јавља у самом компајлеру Ц #. Спречава да се Ц # код састави у .еке формату. Ове грешке су у основи настале због синтаксичке грешке. Када смо погрешно написали било коју синтаксу или пропустили зарез или тачку са зарезом, преводилац то није разумео, па зауставља обраду и баца грешку у времену компилације. Те грешке можемо видети у излазном прозору ИДЕ-а. Дакле, испитивањем ових грешака можемо исправити наш код.
  • Грешке током извођења: Ово су грешке у реалном времену. До њих долази када се успешно компајлира код, али наилазе на било какве проблеме током трчања. То утиче на понашање кода. На пример, можемо рећи када покушавамо да поделимо било који број са нулом, тада се појављује грешка времена. Ове грешке су заморније од грешака преводилаца јер у овом случају морамо исправити понашање кода.

Тип компајлера Ц #

Ранији Мицрософтови преводиоци су именовани као .Нет Фрамеворк попут Ц # компајлера 2.0, Ц # компајлера 3.5, Ц # компајлера 4.к итд. Ови компајлери нису написани у Ц # или можемо рећи да Ц # није саставио Ц #. Остали преводиоци који су настали након овога су:

1. Рослин

Раније је преводилац написао у Ц / Ц ++. Рослин је опен соурце .Нет преводилац у коме се замењује Ц ++ код. Дохваћа врсте елемената у коду, њихову међусобну повезаност. Као што су Ц # и ВБ тимови написали преводилац, тако су и визуелни предлошци студија доступни за обоје. Омогућује нам писање кода који анализира изворну датотеку и лако нам је изменити изворни код.

Следе четири АПИ слоја Рослин-а

  • АПИ за скриптирање : Овај слој пружа контекст извршења времена и омогућава нам да користимо Ц # као скриптни језик и нема зависности од компонената визуелног студија.
  • АПИ компајлера: Овај слој се користи за синтаксу и садржи референце за склопове и датотеке изворног кода. Овај слој такође нема зависности од компонената визуелног студија.
  • Сервице АПИ: Овај слој пружа ИнтеллиСенсе, форматирање, проналазак свих референци итд. На врху СДК-а. Такође помаже у управљању информацијама о пројекту и управљању зависностима о пројекту.
  • АПИ радног простора: Овај слој је углавном за анализу кода и рефакторинг кроз ИДЕ. Рослин олакшава код и састоји се од скупа АПИ-ја попут компајлера и сервиса који пружају бројне функционалности попут форматирања, Интеллисенсе, итд. Омогућава подршку на више језика. АПИ-ји радног простора пружају детаљне информације о изворном коду.

2. Моно састављачи

Моно Ц # компајлер заснован на ЕЦМА стандардима за Ц #. Има више верзија са оквиром попут Ц # 1.0, 2.0, 3.0, 4.0. Моно компајлер мцс циља оквир 1.1, гмцс циља Фрамеворк 2.0, док смцс и дмцс циљају оквире 2.1 и 4.0 респективно.

  • мцс: Подржава све карактеристике Ц # 1.1 као што су анонимне методе, типови који се могу мијењати, фиксни ме успремници, модификатори приступа на својствима, статичке класе итд.
  • гмцс : Подржава Ц # 2.0 функције као изразе упита, објектни иницијализатори, парцијалне методе, ламбда изрази, аутоматски имплементирана својства итд.
  • дмцс : Подржава Ц # 4.0 карактеристике које укључују именоване аргументе, варијансу генеричког типа, везивање динамике итд.

Други компајлер попут РемОбјецтс Ц # компајлера који следи Ц # стандард према ЕМЦА спецификацији и осим тога, постоје ГНУ Ц # компајлери који имплементирају Ц # и .Нет.

Закључак

Ц # компајлер је као и сваки други преводилац који компилира код у машински код да би процесор могао да разуме процес.

Препоручени чланак

Ово је водич за Алат за вађење података. Овде смо расправљали о уводу у Ц # компајлере и различите врсте Јуст-ин-Тиме компајлера и Ц # компајлере. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Питхон Цомпилерс
  2. Јава компајлери
  3. Бест Ц Цомпилерс
  4. Најбољи Јава компајлери
  5. Водич за ПХП компајлер
  6. Приступите модификаторима на ПХП-у

Категорија: