Přehled kompilátorů C

Naučme se tento koncept kompilátorů s příkladem. Předpokládejme, že jste byli na místě, kde jsou jazyky, které hovoříte, zcela odlišné od sebe navzájem, a nyní jste měli nějaké problémy s cestováním a chcete s nimi komunikovat stejně. Jak? Potřebovali jste překladatele, že? Rozhodnete se mít někoho, kdo bude rozumět vašemu jazyku a překládat, a nechat opačné osobě porozumět tomu, co jste chtěli říct. Stejným způsobem bychom psali náš kód C v jazyce na vysoké úrovni, což je formát srozumitelný pro člověka. Jak by program pochopil, co jsme od něj požadovali? Zde přichází kompilátor do obrázku. Kompilátor transformuje a překládá špičkový jazyk do strojově srozumitelného jazyka (na nízké úrovni). Proces kompilace provádí základní překladové mechanismy a také detekci chyb. Kompilace front-end zahrnuje lexikální, syntaktickou a sémantickou analýzu. A na zadní straně kompilace provádí generování a optimalizaci kódu. Existuje tedy mnoho kompilátorů v C jako BDS, Clang, GCC, Interactive C, Lattice, Přenosný kompilátor C, Visual Express atd. Pojďme se o několika z nich dozvědět více.

Vysvětlení kompilátorů C

Níže jsou hlavní kompilátory C:

1) Borland Turbo C

Turbo C je jedním ze základních a oblíbených kompilátorů pro programovací jazyk C. Toto bylo poprvé představeno v roce 1987; to bylo populární pro jeho malou velikost, rychlost kompilace a nízkou cenu. Jakmile byl Turbo C ++ uveden na trh v roce 1990, oba kompilátory byly sloučeny a název Turbo C byl zrušen. V roce 2006 společnost Embarcadero Technologies znovu vydala Turbo C jako freeware. Pamatujete si tuto modrou obrazovku?

2) Malý kompilátor C

Kompilátor Tiny C je navržen pro práci na pomalých počítačích s malým diskovým prostorem. Toto je kompilátor C procesoru ARM. Tento kompilátor začal podporovat Windows od roku 2005. Některé jeho funkce jsou uvedeny níže.

  1. Jeho velikost souboru je malá a podle vlastníka tohoto kompilátoru (Fabrice Bellard). Rychlost tohoto kompilátoru je přibližně devětkrát rychlejší než GCC. Kompilace, sestavení a propojení kódu byly hlavními atributy uvažovanými pro měření rychlosti tohoto kompilátoru.
  2. Tento kompilátor zahrnoval mnoho funkcí specifických pro kompilátor, aby posílil volitelnou paměť, vázal checker a měl větší stabilitu kódu.
  3. Tento kompilátor umožňuje automatické spouštění programů během kompilace pouze pomocí argumentů příkazového řádku. Tímto způsobem jsou programy spouštěny v systému UNIX pomocí skriptů prostředí. Poslední verze byla vydána v prosinci 2017.

3) Přenosný kompilátor C

Portable C Compiler (PCC) byl velmi brzy používaný a zavedený kompilátor pro programovací jazyk C, který je téměř kolem poloviny roku 1970. Tento kompilátor měl dlouhou životnost. Toto bylo převládající během období takovým způsobem, že na něm bylo založeno mnoho kompilátorů C. Výhody PCC závisely na jeho schopnostech a předpovědích pravděpodobnosti. Kompilátor PCC byl vytvořen tak, že zdrojové soubory byly závislé na počítači, ne všechny, ale pouze několik z nich. Může detekovat chyby syntaxe a může provádět dokonalé kontroly platnosti. Nová verze PCC byla vydána 10. prosince 2014.

4) GCC

Sbírka překladačů GNU je kompilátor vytvořený projektem GNU. To podporuje mnoho programovacích jazyků a jedná se o bezplatný softwarový základ v rámci licence General Public License. Tento kompilátor byl poprvé vydán v roce 1987 a během startu podporoval pouze jazyk C-Programming. Pomalu se rozšířil na C ++, Java, Android a IOS. Zde má každý z různých jazykových kompilátorů svůj vlastní program, který čte zapsaný kód a odešle strojový kód jako výstup. Všechny mají společnou vnitřní strukturu. Když je zapsán jazyk na vysoké úrovni, podle jazyka, který je psán, kompilátor analyzuje kód v tomto jazyce a vytvoří abstraktní strom syntaxe. GCC používá LALR parsery, ale pomalu přešel na rekurzivně-sestupné parsery pro C v roce 2006. Pokud jde o optimalizační část, jak již bylo známo, může k tomu dojít během kterékoli fáze kompilace. Zde se však hromadné optimalizace provádějí před generováním kódu a po syntaxi, sémantické analýze. Níže uvádíme několik optimalizací provedených GCC.

  1. To může odstranit kousky mrtvého kódu.
  2. Může eliminovat nadbytečnost na úrovni kódu.
  3. Nahrazení agregátů s ohledem na skalární úroveň.
  4. Může provádět optimalizace pomocí polí.

Na konci GCC je zadána předprocesorová makra a funkce specifické pro konkrétní architekturu. Tento kód je obecně vytvořen tak, že nejprve zavolá malý zlomkový kód, který je spojen s každým vzorem, a vygeneruje instrukce ze sady instrukcí. Provádí se to pomocí registrů, posunů a adres, které jsou vybrány během fáze opětovného načtení. Aktuální verze GCC je 9.2, která byla vydána 12. srpna 2019.

5) Clang

  1. Zvonit; včetně C, je také kompilátorem pro programovací jazyky C ++, Objective-C a Object-C ++. Tento kompilátor používá LLVM pro kompilace související se zadním koncovým kódem. Tento kompilátor byl navržen tak, aby fungoval jako náhrada za GCC podporováním mnoha jeho kompilačních příznaků a jazykových rozšíření.
  2. Clang má mnoho přispěvatelů, včetně společností Apple, Microsoft, Google, Sony a Intel. Jedná se o software s otevřeným zdrojovým kódem. LLVM byl poprvé použit GCC pro kompilaci front-end, ale GCC způsobil vývojářům v Apple nějaké problémy, protože zdrojový kód je velký a obtížně použitelný. Takže přišli s Clangem.
  3. Jedním z hlavních cílů Clang je poskytovat architekturu založenou na knihovnách. Je navržen tak, aby během kompilačního procesu uchovával více informací než GCC. To také pomáhá zachovat celkový tvar původního kódu.
  4. Chybová zpráva generovaná společností Clang během kompilace je vždy podrobná a specifická ve strojově čitelném formátu. Clang se vždy snažil omezit nadměrné využití paměťového prostoru a zvýšit rychlost kompilace ve srovnání s GCC, a díky těmto kvalitám se v průběhu času stal jedním z nejrychleji rostoucích použitých kompilátorů. Ale v průběhu času se výkon Clang začal snižovat. Zprávy uváděly, že výkon ve srovnání s GCC zaostával s téměř velkými rozdíly a začal mít pomalejší výkon. Poslední srovnání naznačují, že oba kompilátoři přišli a zvýšili svůj výkon a opět mezi nimi vytvořili velkou konkurenci. Přesto GCC zůstává na vrcholu seznamu.

Závěr

Ačkoli existuje mnoho kompilátorů pro C, GCC vyniká jako jeden z nejlepších od nynějška. Prohlášení vítěze je založeno na trvanlivosti, optimalizaci, rychlosti a kontrole kódu / chyby / syntaxe. Díky tomu můžeme jasně pochopit, že překladač je důležitým pilířem programovacích jazyků. Bez jejich práce by jakýkoli program, který píšeme, byl pro systém jen odpadky.

Doporučené články

Toto byl průvodce nejlepšími kompilátory C. Zde diskutujeme vysvětlení C kompilátorů s pěti krátkými body. Další informace naleznete také v našem dalším navrhovaném článku.

  1. Kompilátory Pythonu
  2. Kompilátory Java
  3. Jak nainstalovat C
  4. Výhody C
  5. Úvod do PHP kompilátoru
  6. Kompilátory JavaScriptu

Kategorie: