Prehľad kompilátorov C.

Naučme sa tento koncept kompilátorov s príkladom. Predpokladajme, že ste boli na mieste, kde sú jazyky, ktoré hovoríte, navzájom úplne odlišné a teraz ste mali nejaké problémy s cestovaním a chcete s nimi komunikovať rovnako. Ako? Potrebovali ste prekladateľa, že? Rozhodli ste sa, že budete mať niekoho, kto rozumie vášmu jazyku a prekladá a nechá druhú osobu porozumieť tomu, čo chcete povedať. Rovnakým spôsobom by sme napísali náš kód C v jazyku vysokej úrovne, ktorý je zrozumiteľný pre človeka. Ako by program pochopil, čo sme od neho požadovali? Tu prichádza kompilátor do obrazu. Kompilátor transformuje a prekladá špičkový jazyk do strojového jazyka (na nízkej úrovni) zrozumiteľného jazyka. Proces zostavovania vykonáva základné mechanizmy prekladu a tiež zisťovanie chýb. Kompilácia front-end obsahuje lexikálnu, syntaxovú a sémantickú analýzu. A na konci, kompilácia robí generovanie kódu a optimalizáciu. Takže v C je veľa kompilátorov, ako sú BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express, atď. Poďme sa dozvedieť viac o niekoľkých z nich.

Vysvetlenie kompilátorov C.

Nižšie sú uvedené najlepšie kompilátory jazyka C:

1) Borland Turbo C

Turbo C je jedným zo základných a populárnych kompilátorov pre programovací jazyk C. Toto bolo prvýkrát predstavené v roku 1987; to bolo populárne pre jeho malú veľkosť, rýchlosť kompilácie a nízku cenu. Po vydaní Turbo C ++ v roku 1990 sa kompilátory zlúčia a názov Turbo C sa prestane používať. V roku 2006 spoločnosť Embarcadero Technologies znova vydala softvér Turbo C ako freeware. Pamätáte si túto modrú obrazovku?

2) Malý kompilátor C

Kompilátor Tiny C je navrhnutý pre prácu na pomalých počítačoch s malým miestom na disku. Toto je kompilátor C procesora ARM. Tento kompilátor začal svoju podporu systému Windows od roku 2005. Niektoré jeho funkcie sú uvedené nižšie.

  1. Jeho veľkosť súboru je malá a podľa vlastníka tohto kompilátora (Fabrice Bellard). Rýchlosť tohto kompilátora je približne deväťkrát rýchlejšia ako GCC. Zostavovanie, zostavovanie a prepájanie kódu boli hlavnými atribútmi, ktoré sa zvažovali pri meraní rýchlosti tohto kompilátora.
  2. Tento kompilátor obsahoval veľa funkcií špecifických pre kompilátor na zvýšenie voliteľnej pamäte, viazanú kontrolu a mal väčšiu stabilitu kódu.
  3. Tento kompilátor umožňuje automatické vykonávanie programov počas kompilácie iba pomocou argumentov príkazového riadku. Týmto spôsobom sa programy spúšťajú v systéme UNIX pomocou skriptov shellu. Posledná verzia bola vydaná v decembri 2017.

3) Prenosný kompilátor C

Prenosný kompilátor C (PCC) bol veľmi skoro používaný a zavedený kompilátor pre programovací jazyk C, ktorý je takmer v polovici roku 1970. Tento kompilátor mal dlhú životnosť. Toto bolo prevládajúce počas obdobia takým spôsobom, že mnoho kompilátorov C vychádzalo z neho. Výhody PCC záviseli od jeho schopností a predpovedí pravdepodobnosti. Kompilátor PCC bol vyrobený tak, že zdrojové súbory záviseli od počítača, nie všetky, ale iba niektoré z nich. Dokáže zistiť chyby syntaxe a môže vykonať dokonalé kontroly platnosti. Nová verzia PCC bola vydaná 10. decembra 2014.

4) GCC

Zbierka prekladačov GNU je kompilátor produkovaný projektom GNU. Podporuje to veľa programovacích jazykov a je to bezplatná softvérová nadácia na základe licencie General Public License. Tento kompilátor bol prvýkrát vydaný v roku 1987 a na začiatku podporoval iba jazyk C-Programming. Pomaly sa rozšíril na C ++, Java, Android a IOS. Tu má každý z rôznych jazykových kompilátorov vlastný program, ktorý číta napísaný kód a ako výstup odosiela strojový kód. Všetky majú spoločnú vnútornú štruktúru. Keď je napísaný jazyk na vysokej úrovni, podľa jazyka, v ktorom je napísaný, kompilátor analyzuje kód v tomto jazyku a vytvorí abstraktný strom syntaxe. GCC používa analyzátory LALR, ale v roku 2006 pomaly prešla na analyzátory s rekurzívnym zostupom na C. Tu sa však hromadné optimalizácie vykonávajú pred generovaním kódu a po syntaxi, sémantickej analýze. Nižšie je uvedených niekoľko optimalizácií, ktoré vykonáva GCC.

  1. Môže odstrániť kúsky Mŕtveho kódu.
  2. Môže eliminovať redundanciu na úrovni kódu.
  3. Nahradenie kameniva vzhľadom na skalárnu úroveň.
  4. Môže vykonávať optimalizácie pomocou polí.

V GCC je zadný koniec špecifikovaný makrom preprocesora a funkciami špecifickými pre konkrétnu architektúru. Tento kód sa vo všeobecnosti zostavuje tak, že najskôr zavolá malý útržkový kód, ktorý je priradený ku každému vzoru a vygeneruje pokyny zo sady inštrukcií. Uskutočňuje sa to pomocou registrov, posunov a adries, ktoré sa vyberajú počas fázy opätovného načítania. Aktuálna verzia GCC je 9.2, ktorá bola vydaná 12. augusta 2019.

5) Clang

  1. Clang; vrátane C, je tiež kompilátorom programovacích jazykov C ++, Objective-C a Object-C ++. Tento kompilátor používa LLVM na kompilácie súvisiace s koncovým kódom. Tento kompilátor bol navrhnutý tak, aby slúžil ako náhrada za GCC podporovaním mnohých jeho príznakov kompilácie a jazykových rozšírení.
  2. Clang má veľa prispievateľov vrátane spoločností Apple, Microsoft, Google, Sony a Intel. Je to softvér s otvoreným zdrojom. LLVM bol prvýkrát použitý GCC na front-end kompiláciu, ale GCC spôsobil vývojárom v Apple nejaké problémy, pretože zdrojový kód je veľký a ťažko použiteľný. Takže prišli s Clangom.
  3. Jedným z hlavných cieľov spoločnosti Clang je poskytovať architektúru založenú na knižniciach. Je navrhnutý tak, aby počas procesu kompilácie uchovával viac informácií ako GCC. To tiež pomáha zachovať celkový tvar pôvodného kódu.
  4. Správa o chybách generovaná spoločnosťou Clang počas kompilácie je vždy podrobná a špecifická v strojom čitateľnom formáte. Cieľom spoločnosti Clang bolo vždy znížiť nadmerné využitie pamäťového priestoru a zvýšiť rýchlosť kompilácie v porovnaní s GCC, a vďaka týmto vlastnostiam sa v priebehu času stal jedným z najrýchlejšie rastúcich použitých kompilátorov. Ale po čase sa výkon Clanga začal znižovať. V správach sa uvádza, že výkon v porovnaní s GCC zaostával s takmer veľkými rozdielmi a začal mať pomalší výkon. Posledné porovnania naznačujú, že kompilátori prišli a zvýšili ich výkonnosť a opäť medzi nimi vytvorili veľkú konkurenciu. Napriek tomu GCC zostáva na vrchole zoznamu.

záver

Aj keď existuje veľa kompilátorov pre C, GCC je odteraz jedným z najlepších. Vyhlásenie víťaza je založené na trvanlivosti, optimalizácii, rýchlosti a kontrole kódu / chyby / syntaxe. Týmto môžeme jasne pochopiť, že kompilátor je dôležitým pilierom programovacích jazykov. Bez ich práce by akýkoľvek program, ktorý napíšeme, bol pre systém iba odpadom.

Odporúčané články

Toto bola príručka pre najlepšie kompilátory C. Tu diskutujeme o vysvetleniach kompilátorov C s piatimi krátkymi bodmi. Môžete si tiež prečítať náš ďalší navrhovaný článok a dozvedieť sa viac-

  1. Kompilátory Python
  2. Kompilátory Java
  3. Ako nainštalovať C
  4. Výhody C
  5. Úvod do PHP kompilátora
  6. Kompilátory JavaScriptu

Kategórie: