Johdanto C # -kokoonpanoihin

Artikkelissa C # Compiler Compiler on ohjelmisto, joka muuntaa lähdekoodin (minkä tahansa kehittäjän kirjoittama koodi millä tahansa kielellä) koneoppimiskieleksi, jotta prosessori ymmärtäisi sitä. Suoritin on tietokoneen tärkein osa, joka ymmärtää vain konekoodeja. Joten kielikoodien muuntaminen konekoodeiksi on pakollista.

C #: ssa suoritamme kääntäjiä, se ottaa koodin syöttöparametrina ja suorittaa jonkin verran prosessointia, prosessoinnin jälkeen antaa ulostulon välikielellä. Tämä lähtö tallennetaan * .dll- tai * .exe-tiedostoihin

Joten välikielen luomisen jälkeen meidän piti muuntaa tämä IL konekoodeiksi, koska prosessori ymmärsi vain konekoodit. Joten käytimme CLR: ää (Common Language Runtime) tähän muuntamiseen. CLR on tietokoneella toimiva ohjelma, joka muuttaa IL-koodin konekoodeiksi Just-In-Time -palvelun (yleisesti nimeltään JIT) avulla. Kun kaksoisnapsautamme .exe-tiedostoa, JIT-kääntäjä käynnistetään ja kääntää IL-koodin tuona ajankohtana, joten sen nimi on JUST-IN-TIME (JIT).

Kokoonpano voidaan tehdä implisiittisesti tai eksplisiittisesti. Implisiittinen kokoelma on kahdesti kokoelma, jossa ensin se kootaan IS ja sen jälkeen se käännetään konekielelle. Tätä prosessia kutsutaan JIT-kokoamiseksi tai JUST-In-Time -kokoonpanoksi. JIT tukee useita alustoja ja nopeuttaa koodin suorittamista.

Just-In-Time-kääntäjän tyypit

On olemassa kolme erilaista Just-In-Time-kääntäjää

1. Pre JIT -kääntäjä

Tässä kääntäjässä on vain yksi kokoamisprosessi, koska koko lähdekoodi käännetään natiivikoodiksi.

2. Normaali JIT-kääntäjä

Tässä kääntäjässä vain ne menetelmät kootaan konekoodiin, jota vaaditaan ajon aikana. Kääntäjä kokoaa nämä menetelmät, tallentaa ne välimuistiin ja käytti samaa menetelmää uudelleen.

3. Econo JIT -kääntäjä

Tässä kääntäjässä vain ne menetelmät kootaan konekoodiin, joka vaaditaan suorituksen aikana, mutta nämä menetelmät poistetaan, jos niitä ei vaadita. JIT: ssä vain vaadittu menetelmä kootaan ajon aikana, joten se vaatii vähemmän muistin käyttöä.

Yllä olevassa kaaviossa

1-3 vaihetta suoritetaan käännöshetkellä

3-5 vaihetta suoritetaan ajon aikana.

Joten kun ajamme näitä kahta tyyppisiä virheitä.

Suoritusajan virheet ja kääntäjävirheet

  • Kääntäjän virheet: Tämän tyyppinen virhe ilmenee itse C # -kääntäjästä. Se estää C # -koodin kääntymästä .exe-muotoon. Nämä virheet tapahtuvat pohjimmiltaan syntaksivirheen takia. Kun kirjoitimme väärin mitään syntaksia tai ohitamme pilkun tai puolipisteen, kääntäjä ei ymmärtänyt tätä, joten se pysäyttää käsittelyn ja heittää käännösajan virheen. Voimme nähdä nämä virheet IDE: n lähtöikkunassa. Joten tutkimalla nämä virheet voimme korjata koodimme.
  • Suorituksenaikaiset virheet: Nämä ovat reaaliaikaisia ​​virheitä. Ne ilmenevät, kun koodi kootaan onnistuneesti, mutta kohtaavat ongelmat ajon aikana. Tämä vaikuttaa koodin käyttäytymiseen. Voimme esimerkiksi sanoa, kun yritämme jakaa minkä tahansa luvun nolla, silloin tapahtuu virheaika. Nämä virheet ovat työläämpiä kuin kääntäjävirheet, koska tässä tapauksessa meidän on korjattava koodin toiminta.

Tyyppi C # Kääntäjät

Aikaisemmat Microsoftin kääntäjät nimettiin .Net Frameworkiksi, kuten C # kääntäjä 2.0, C # kääntäjä 3.5, C # kääntäjä 4.x jne. Näitä kääntäjiä ei kirjoitettu C #: llä tai voidaan sanoa, että C #: ta ei koonnut C #. Muut tämän jälkeen syntyneet kääntäjät ovat:

1. Roslyn

Aikaisemmin kääntäjä oli kirjoitettu C / C ++. Roslyn on avoimen lähdekoodin. Net-kääntäjä, jossa C ++ -koodi korvataan. Se hakee elementtityypit koodissa, niiden suhteen toisiinsa. Koska C #: n ja VB: n joukkueet kirjoittivat kääntäjän, siis visuaalisen studion mallit ovat käytettävissä molemmille. Sen avulla voimme kirjoittaa koodin, joka jäsentää lähdetiedoston, ja meidän on helppo muokata lähdekoodia.

Seuraavat ovat Roslyn neljä API-kerrosta

  • Scripting API: Tämä kerros tarjoaa suorituksen suorituskontekstin ja antaa meille mahdollisuuden käyttää C #: tä komentosarjojen kielenä, eikä sillä ole mitään riippuvuuksia visiostudion komponenteista.
  • Kääntäjä-sovellusliittymä: Tätä kerrosta käytetään syntaksissa ja se sisältää viitteitä kokoonpanoihin ja lähdekooditiedostoihin. Tällä kerroksella ei myöskään ole riippuvuuksia visiostudion komponenteista.
  • Palvelun sovellusliittymä: Tämä kerros tarjoaa IntelliSensen, muotoilun, Etsi kaikki viitteet jne. SDK: n päälle. Se auttaa myös hallitsemaan projektia koskevia tietoja ja hallitsemaan projektin riippuvuuksia.
  • Workspace API: Tämä kerros on tarkoitettu pääasiassa koodin analysointiin ja refaktorointiin IDE: ien kautta. Roslyn tekee koodista helpomman ja koostuu joukosta sovellusliittymiä, kuten kääntäjä ja palvelu, joka tarjoaa monia toimintoja, kuten muotoilua, Intellisensea jne. Se tukee useita kieliä. Workspace-sovellusliittymät tarjoavat syvällistä tietoa lähdekoodista.

2. Yksikokoiset kääntäjät

Mono C # -kääntäjä, joka perustuu ECMA: n C # -standardeihin. Sillä on useita versioita, joissa on kehys, kuten C # 1.0, 2.0, 3.0, 4.0. Monokääntäjä mcs kohdistaa kehykseen 1.1, gmcs kohdistaa kehykseen 2.0, kun taas smcs ja dmcs kohdistavat kehykseen 2.1 ja vastaavasti 4.0.

  • mcs: Se tukee kaikkia C # 1.1 -ominaisuuksia, kuten nimettömiä menetelmiä, nollattavia tyyppejä, kiinteitä puskureita, ominaisuuksien pääsymuokkaimia, staattisia luokkia jne.
  • gmcs : Se tukee C # 2.0 -ominaisuuksia, kuten kyselylausekkeita, objektialustajia, osittaisia ​​menetelmiä, lambda-lausekkeita, automaattisesti toteutettuja ominaisuuksia jne.
  • dmcs : Se tukee C # 4.0 -ominaisuuksia, jotka sisältävät nimettyjä argumentteja, yleisen tyyppivarianssin, dynamiikan sitomisen jne.

Toinen kääntäjä, kuten RemObjects C # -kääntäjä, joka noudattaa C # -standardia EMCA-määritelmän mukaisesti, ja muu kuin että on olemassa GNU C # -kääntäjiä, jotka toteuttavat C #: n ja .Netin.

johtopäätös

C # -kääntäjä on kuin mikä tahansa muu kääntäjä, joka kääntää koodin konekoodiksi, jotta prosessori ymmärtää prosessin.

Suositeltava artikkeli

Tämä on opas Data Mining Tool -työkaluun. Tässä keskustellaan johdannosta C # -kääntäjille ja erityyppisille Just-In-Time-kääntäjille ja C # -kääntäjille. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Python-kääntäjät
  2. Java-kääntäjät
  3. Parhaat C-kääntäjät
  4. Parhaat Java-kääntäjät
  5. Opas PHP-kääntäjään
  6. Pääsy muokkaimet PHP