Yleiskatsaus C-kääntäjistä

Oppitaan tämä kääntäjien käsite esimerkillä. Oletetaan, että olet käynyt paikassa, jossa puhut kielet eroavat toisistaan ​​täysin, ja nyt sinulla oli joitain matkustusongelmia ja haluat kommunikoida saman heidän kanssaan. Miten? Tarvitsitko kääntäjän oikein? Valitset jonkun, joka ymmärtää kieltäsi ja kääntää, ja antaa vastakkaiselle henkilölle ymmärtää, mitä halusit sanoa. Samoin kirjoittaisi C-koodimme korkean tason kielellä, joka on ihmiselle ymmärrettävissä. Kuinka ohjelma ymmärtää, mitä olemme pyytäneet sitä tekemään? Täältä kääntäjä tulee kuvaan. Kääntäjä muuntaa ja kääntää huippuluokan kielen koneelle (matala) ymmärrettäväksi kieleksi. Kokoonpanoprosessi suorittaa perustäänkomenetelmät ja myös virheiden havaitsemisen. Etuosakokoonpano sisältää leksisen, syntaksin ja semanttisen analyysin. Ja lopussa kokoaminen tekee koodin luomisen ja optimoinnin. Joten C: ssä on monia kääntäjiä, kuten BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express jne. Tutustutaan enemmän muutamaan niistä.

Selitykset C-kääntäjille

Alla on C: n suosituimmat kääntäjät:

1) Borland Turbo C

Turbo C on yksi perus-ja suosituimmista kääntäjistä C-ohjelmointikielelle. Tämä otettiin ensimmäisen kerran käyttöön vuonna 1987; se oli suosittu pienikokoisuudestaan, kokoamisnopeudestaan ​​ja alhaisesta hinnastaan. Kun Turbo C ++ julkaistiin vuonna 1990, molemmat kääntäjät sulautetaan ja nimi Turbo C lopetettiin. Vuonna 2006 Embarcadero Technologies oli julkaissut Turbo C: n uudelleen ilmaisohjelmana. Muistatko tämän sinisen näytön?

2) Pieni C-kääntäjä

Tiny C -kääntäjä on suunniteltu toimimaan hitaissa tietokoneissa, joissa on vähän levytilaa. Tämä on ARM-prosessorin C kääntäjä. Tämä kääntäjä aloitti Windows-tuensa vuodesta 2005. Jotkut sen ominaisuuksista mainitaan alla.

  1. Tiedoston koko on pieni ja tämän kääntäjän omistajan (Fabrice Bellard) mukaan. Tämän kääntäjän nopeus on noin yhdeksän kertaa nopeampi kuin GCC. Koodin kokoaminen, kokoaminen ja linkittäminen olivat tärkeimmät ominaisuudet, joita tarkasteltiin kääntäjän nopeuden mittaamisessa.
  2. Tämä kääntäjä oli sisällyttänyt monia kääntäjäkohtaisia ​​ominaisuuksia valinnaisen muistin lisäämiseksi, sidotun tarkistimen lisäämiseksi ja koodin vakauden parantamiseksi.
  3. Tämä kääntäjä sallii ohjelmien automaattisen suorittamisen käännösaikana vain komentoriviargumentteja käyttämällä. Tällä tavalla ohjelmat suoritetaan UNIX-järjestelmässä, käyttämällä komentosarjoja. Uusin versio julkaistiin joulukuussa 2017.

3) Kannettava C-kääntäjä

Portable C Compiler (PCC) oli hyvin varhain käytetty ja vakiintunut kääntäjä C-ohjelmointikielelle, joka on melkein vuoden 1970 puolivälissä. Tällä kääntäjällä oli pitkä käyttöikä. Tämä oli yleistä ajanjaksona siten, että monet C-kääntäjistä perustuivat siihen. PCC: n edut riippuivat sen kyvyistä ja todennäköisyysennusteista. PCC-kääntäjä tehtiin sellaiseksi, että lähdetiedostot olivat koneesta riippuvaisia, ei kaikkia, mutta vain muutamaa niistä. Se voi havaita syntaksivirheet ja suorittaa täydelliset kelvollisuustarkistukset. PCC: n uusi versio julkaistiin 10. joulukuuta 2014.

4) GCC

GNU Compiler Collection on GNU Projektin tuottama kääntäjä. Tämä tukee monia ohjelmointikieliä ja on ilmainen ohjelmistosäätiö, joka on yleisen julkisen käyttöoikeuden alainen. Tämä kääntäjä julkaistiin ensimmäisen kerran vuonna 1987 ja se tuki alkuvaiheessa vain C-ohjelmointikieltä. Hitaasti se laajeni C ++, Java, Android ja IOS. Tässä jokaisella eri kielen kääntäjällä on oma ohjelma, joka lukee kirjoitetun koodin ja lähettää konekoodin tulosteena. Kaikilla näillä on yhteinen sisäinen rakenne. Kun kirjoitetaan korkean tason kieli, sen kirjoitetun kielen mukaan, kääntäjä jäsentää koodin kyseisellä kielellä ja tuottaa abstraktin syntaksipuun. GCC käyttää LALR-jäsentäjiä, mutta siirtyi hitaasti C: n rekursiiviseen laskeutumiseen vuonna 2006. Tullen optimointiosaan, kuten jo tiedetään, se voi tapahtua missä tahansa kokoamisvaiheessa. Tällöin joukkooptimoinnit suoritetaan kuitenkin ennen koodin generointia ja syntaksin, semanttisen analyysin jälkeen. Alla on muutama GCC: n suorittamasta optimoinnista.

  1. Se voi poistaa Dead Code -palat.
  2. Se voi poistaa redundanssin kooditasolla.
  3. Aggregaattien korvaaminen skalaaritasolla.
  4. Pystyy optimoimaan ryhmiä.

GCC: n loppupää määritellään prosessorin esimakroilla ja tietylle arkkitehtuurille ominaisilla toiminnoilla. Tämä koodi rakennetaan yleensä kutsumalla ensin pieni katkelmakoodi, joka liittyy kuhunkin malliin, ja generoimaan ohjeet käskyjoukosta. Se tehdään käyttämällä rekistereitä, siirtymiä ja osoitteita, jotka valitaan uudelleenlatausvaiheen aikana. GCC: n nykyinen versio on 9.2, joka julkaistiin 12. elokuuta 2019.

5) Clang

  1. Kalahtaa; mukaan lukien C, on myös kääntäjä C ++, Objective-C ja Object-C ++ ohjelmointikieleille. Tämä kääntäjä käyttää LLVM: ää taustakoodiin liittyvissä kokoelmissa. Tämä kääntäjä on suunniteltu korvaamaan GCC: tä tukemalla monia sen kokoamislippuja ja kielilaajennuksia.
  2. Clangilla on monia avustajia, kuten Apple, Microsoft, Google, Sony ja Intel. Se on avoimen lähdekoodin ohjelmisto. GCC käytti LLVM: ää ensin käyttöliittymäkokoonpanoon, mutta GCC oli aiheuttanut joitain ongelmia Applen kehittäjille, koska lähdekoodi on suuri ja vaikea käyttää. Joten, he olivat keksineet Clangin.
  3. Yksi Clangin päätavoitteista on tarjota kirjastopohjainen arkkitehtuuri. Se on suunniteltu pitämään enemmän tietoa kokoamisprosessin aikana kuin GCC. Tämä auttaa myös säilyttämään alkuperäisen koodin yleisen muodon.
  4. Clangin kokoamisen aikana generoima virheraportti on aina yksityiskohtainen ja erityinen koneellisesti luettavassa muodossa. Clang oli aina pyrkinyt vähentämään muistitilan liiallista käyttöä ja kasvattamaan käännösnopeutta GCC: hen verrattuna, ja näiden ominaisuuksien vuoksi siitä oli tullut yksi nopeimmin kasvavista käytetyistä kääntäjistä tietyn ajankohdan aikana. Mutta tietyn ajan kuluessa Clangin suorituskyky alkoi heikentyä. Raporttien mukaan suorituskyky oli viivästynyt melkein suurilla eroilla verrattuna GCC: hen, ja sen suorituskyky alkoi olla hitaampi. Viimeisimmät vertailut osoittavat, että molemmat kääntäjät olivat keksineet ja lisänneet suorituskykyään ja luoneet jälleen suuren kilpailun keskenään. GCC on kuitenkin edelleen kärjessä.

johtopäätös

Vaikka C: lle on saatavana monia kääntäjiä, GCC osoittaa olevansa yksi parhaimmista nyt. Voittajajulistus perustuu tässä kestävyyteen, optimointiin, nopeuteen ja koodi- / virhe / syntaksitarkistuksiin. Tämän kautta voimme selvästi ymmärtää, että kääntäjä on tärkeä pylväs ohjelmointikieleille. Ilman heidän työtä mikä tahansa kirjoittamamme ohjelma olisi vain roskaa järjestelmälle.

Suositellut artikkelit

Tämä on opas parhaimpiin C-kääntäjiin. Tässä keskustellaan C-kääntäjien selityksistä viidellä lyhyellä kohdalla. Voit myös käydä läpi toisen ehdotetun artikkelin saadaksesi lisätietoja-

  1. Python-kääntäjät
  2. Java-kääntäjät
  3. Kuinka asentaa C
  4. C: n edut
  5. Johdanto PHP-kääntäjään
  6. JavaScript-kääntäjät