C-kompilaatorite ülevaade

Õppigem seda koostajate kontseptsiooni näitega. Oletame, et olete käinud kohas, kus räägitavad keeled erinevad üksteisest täiesti ning teil olid nüüd mõned reisimisega seotud probleemid ja soovite nendega samaga suhelda. Kuidas? Kas teil oli vaja tõlki? Valite kellegi, kes mõistab teie keelt, tõlgib ja laseb vastasel inimesel aru saada, mida te öelda tahtsite. Samamoodi kirjutaksime oma C-koodi kõrgel tasemel, inimesele arusaadavas vormis. Kuidas saaks programm aru, mida me oleme palunud tal teha? Siin tuleb pildile kompilaator. Kompilaator muudab ja tõlgib tipptasemel keele masin (madal) arusaadavaks keeleks. Koostamisprotsessis kasutatakse põhilisi tõlkemehhanisme ja ka vigade tuvastamist. Esikülje koostamine sisaldab leksikaalset, süntaksilist ja semantilist analüüsi. Ja lõpus teeb kompileerimine koodi genereerimise ja optimeerimise. Nii et C-s on palju kompilaatoreid, näiteks BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express jne. Tutvustame lähemalt mõne neist.

Selgitused C-koostajatele

Allpool on toodud C populaarseimad koostajad:

1) Borland Turbo C

Turbo C on üks põhilisi ja populaarsemaid C-programmeerimiskeele koostajaid. See võeti esmakordselt kasutusele 1987. aastal; see oli populaarne oma väiksuse, kompileerimise kiiruse ja madala hinna poolest. Kui Turbo C ++ 1990. aastal välja anti, liidetakse mõlemad kompilaatorid ja nimi Turbo C lõpetati. 2006. aastal oli Embarcadero Technologies Turbo C vabavarana välja lasknud. Kas mäletate seda sinist ekraani?

2) Pisike C-kompilaator

Tiny C-kompilaator on loodud töötama aeglastes arvutites, kus on vähe kettaruumi. See on ARM-protsessori C kompilaator. See kompilaator alustas Windowsi toetamist alates 2005. aastast. Mõned selle funktsioonid on toodud allpool.

  1. Selle faili suurus on väike ja vastavalt selle kompilaatori omanikule (Fabrice Bellard). Selle kompilaatori kiirus on umbes üheksa korda kiirem kui GCC. Selle kompilaatori kiiruse mõõtmisel peeti peamiseks atribuudiks koodi kompileerimine, kokkupanek ja linkimine.
  2. See kompilaator sisaldas palju kompilaatoripõhiseid funktsioone, et suurendada valikulist mälu, siduda kontrollija ja sellel oli suurem koodi stabiilsus.
  3. See kompilaator võimaldab kompileerimise ajal programmide automaatset täitmist ainult käsuridade argumentide abil. Nii teostatakse programme UNIX-is, kasutades shelliskripte. Viimane versioon ilmus 2017. aasta detsembris.

3) kaasaskantav C-kompilaator

Kaasaskantav C-kompilaator (PCC) oli väga varakult kasutatud ja loodud kompilaator C-programmeerimiskeele jaoks, mis on peaaegu 1970. aasta keskpaik. Selle kompilaatori eluiga oli pikk. See oli levinud sel perioodil, et paljud C-kompilaatorid põhinesid sellel. PCC eelised sõltusid selle võimalustest ja tõenäosuse prognoosidest. PCC kompilaator tehti nii, et lähtefailid olid masinist sõltuvad, mitte kõik, vaid ainult mõned neist. See suudab tuvastada süntaksivigu ja saab täiuslikke kehtivuse kontrolle. PCC uus versioon ilmus 10. detsembril 2014.

4) GCC

GNU Compiler Collection on GNU Projekti toodetud kompilaator. See toetab paljusid programmeerimiskeeli ja on üldise avaliku litsentsi alla kuuluv vaba tarkvara sihtasutus. See kompilaator ilmus esmakordselt 1987. aastal ja see toetas käivitamise ajal ainult C-programmeerimiskeelt. Aeglaselt laienes see C ++, Java, Android ja IOS. Siin on igal erineval keelekompilaatoril oma programm, mis loeb kirjutatud koodi ja saadab väljundina masinkoodi. Neil kõigil on ühine sisemine struktuur. Kui kirjutatakse kõrgetasemeline keel, parseldab kompilaator selle keele koodi ja loob abstraktse süntaksipuu. GCC kasutab LALR-i parserit, kuid lülitus C-i jaoks aeglaselt 2006. aastal rekursiivsete laskumistega parseritele. Tulles optimeerimise ossa, nagu juba teada, võib see toimuda kompileerimise igas faasis. Kuid hulgimüügi optimeerimine toimub enne koodi genereerimist ja pärast süntaksit, semantilist analüüsi. Allpool on toodud mõned GCC tehtud optimeeringud.

  1. See võib kaotada surnud koodi tükid.
  2. Sellega saab üleliigse kooditaseme kaotada.
  3. Agregaatide asendamine skalaariumi suhtes.
  4. Oskab optimeerida massiive.

GCC-s määratlevad tagaotsa protsessori eelmakrod ja funktsioonid, mis on konkreetsele arhitektuurile omased. See kood luuakse tavaliselt kõigepealt väikese mustrikoodi abil, mis on seotud iga mustriga, ja genereerib juhistest juhiskomplekti. Selleks kasutatakse uuesti laadimise faasis valitud registreid, nihkeid ja aadresse. GCC praegune versioon on 9.2, mis ilmus 12. augustil 2019.

5) klann

  1. Klann; sealhulgas C, on ka C ++, Objective-C ja Objective-C ++ programmeerimiskeelte kompilaator. See kompilaator kasutab LLVM-i tagumiste koodidega seotud kompilatsioonide jaoks. See kompilaator on loodud asendama GCC, toetades paljusid selle koostamise lippe ja keelelaiendeid.
  2. Clangil on palju kaastöötajaid, sealhulgas Apple, Microsoft, Google, Sony ja Intel. See on avatud lähtekoodiga tarkvara. GCC kasutas LLVM-i esiteks esiotsa kompileerimisel, kuid GCC oli tekitanud Apple'i arendajatele mõningaid probleeme, kuna lähtekood on suur ja seda on keeruline kasutada. Niisiis, nad olid tulnud välja Clangiga.
  3. Clangi üks peamisi eesmärke on pakkuda raamatukogudel põhinevat arhitektuuri. Selle eesmärk on hoida kompileerimise ajal rohkem teavet kui GCC. See aitab säilitada ka algse koodi üldist kuju.
  4. Clangi koostamise ajal koostatud veateade on alati üksikasjalik ja konkreetne masinloetavas vormingus. Clang oli alati võtnud eesmärgiks vähendada mäluruumi liigset kasutamist ja suurendada kompileerimise kiirust võrreldes GCC-ga ning nende omaduste tõttu oli temast saanud teatud aja jooksul üks kiiremini kasvavaid kasutatud kompilaate. Kuid teatud aja jooksul hakkas Clangi esinemine taanduma. Aruannete kohaselt oli jõudlus GCC-ga võrreldes peaaegu suurte erinevustega maha jäänud ja jõudlus oli aeglasem. Värskeimad võrdlused näitavad, et mõlemad koostajad olid üles astunud ja oma jõudlust suurendanud ning loonud taas omavahelise konkurentsi. GCC jääb siiski nimekirja tippu.

Järeldus

Kuigi C jaoks on saadaval palju kompilaatoreid, paistab GCC praeguse seisuga üks parimatest. Võitja deklaratsioon põhineb siin vastupidavusel, optimeerimisel, kiirusel ja koodi / vea / süntaksi kontrollimisel. Selle kaudu saame selgelt aru, et koostaja on programmeerimiskeelte oluline tugisammas. Ilma nende tööta oleks programm, mille me kirjutame, süsteemi jaoks lihtsalt prügiks.

Soovitatavad artiklid

See on olnud teejuht parimatele C-koostajatele. Siin käsitleme C-koostajate selgitusi viie lühikese punktiga. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Pythoni koostajad
  2. Java kompilaatorid
  3. Kuidas installida C
  4. C eelised
  5. Sissejuhatus PHP-kompilaatorisse
  6. JavaScripti koostajad

Kategooria: