A C-fordító áttekintése

Tanuljunk egy példát a fordító fogalmáról. Tegyük fel, hogy olyan helyen jártál, ahol a beszélt nyelvek teljesen különböznek egymástól, és most már vannak utazási problémái, és ugyanazt szeretné kommunikálni velük. Hogyan? Szüksége van egy fordítóra? Ön úgy dönt, hogy van valaki, aki érti az Ön nyelvét, és lefordít, és hagyja, hogy a másik ember megértse, amit mondani akart. Ugyanígy írnánk C kódunkat magas szintű, ember számára érthető nyelven. Hogyan érti meg a program, mit kértünk tőle? Itt fordul elő a fordító. A fordító átalakítja és lefordítja a csúcskategóriás nyelvet gépi (alacsony szintű) érthető nyelvre. A fordítási folyamat elvégzi az alapvető fordítási mechanizmusokat és a hibák észlelését is. Az előlapi összeállítás lexikai, szintaxis és szemantikai elemzést tartalmaz. És a végén az összeállítás elvégzi a kód generálását és optimalizálását. Tehát a C-ben sok fordító található, mint például a BDS, a Clang, a GCC, az Interaktív C, a Rács, a Hordozható C-fordító, a Visual Express stb.. Nézzük meg többet ezekről.

Magyarázatok a C-összeállítókhoz

Az alábbiakban a C legnépszerűbb fordítói találhatók:

1) Borland Turbo C

A Turbo C az egyik alapvető és népszerű fordító a C programozási nyelvhez. Ezt először 1987-ben vezették be; népszerű volt a kis mérete, az összeállítási sebesség és az alacsony ár miatt. Miután a Turbo C ++ 1990-ben megjelent, mindkét fordítót egyesítik, és a Turbo C név megszűnt. 2006-ban az Embarcadero Technologies szabadon kiadta a Turbo C szoftvert. Emlékszel erre a kék képernyőre?

2) Apró C fordító

A Tiny C fordítót lassú, kevés lemezterületű számítógépeken való használatra tervezték. Ez egy ARM processzor C fordító. Ez a fordító 2005-től kezdte meg a Windows támogatását. Egyes funkcióit az alábbiakban említjük.

  1. A fájl mérete kicsi, és a fordító tulajdonosa (Fabrice Bellard) szerint. Ennek a fordítónak a gyorsasága körülbelül kilencszer gyorsabb, mint a GCC-vel szemben. A kód összeállítása, összeszerelése és összekapcsolása volt a fő jellemzők, amelyeket figyelembe vettünk ennek a fordítónak a gyorsaságának mérésére.
  2. Ez a fordító számos fordító-specifikus funkciót tartalmazott az opcionális memória növeléséhez, a kötött ellenőrzőhöz és nagyobb kódstabilitással.
  3. Ez a fordító lehetővé teszi a programok automatikus végrehajtását a fordítás ideje alatt, csak parancssori argumentumok felhasználásával. Ilyen módon a programokat UNIX alatt hajtják végre, shell parancsfájlokkal. A legújabb verziót 2017. decemberében adták ki.

3) Hordozható C fordító

A Portable C Compiler (PCC) egy nagyon korán használt és bevezetett fordító a C programozási nyelvhez, majdnem 1970 közepén. Ennek a fordítónak hosszú élettartama volt. Ez egy olyan időszakban volt elterjedt, hogy sok C-fordító alapult rajta. A PCC előnyei a képességeitől és a valószínűségi előrejelzésektől függtek. A PCC fordítót úgy készítették el, hogy a forrásfájlok géptől függenek, nem mindegyik, csak kevés. Felismeri a szintaxis hibákat és tökéletes érvényesség-ellenőrzést végezhet. A PCC új verziója 2014. december 10-én jelent meg.

4) GCC

A GNU Compiler Collection a GNU Projekt által készített fordító. Ez számos programozási nyelvet támogat, és ez egy ingyenes szoftver alap, amely a General Public License alatt áll. Ezt a fordítót először 1987-ben adták ki, és a start során csak a C-Programming nyelvet támogatta. Lassan kibővült C ++, Java, Android és IOS rendszerekre. Itt a különböző nyelvi fordítóknak megvan a saját programjuk, amely elolvassa az írott kódot, és outputként küldi el a gépi kódot. Mindezeknek közös belső felépítése van. Ha magas szintű nyelvet írnak, az írott nyelv szerint, a fordító elemzi a kódot az adott nyelven, és elvont szintaxis fát állít elő. A GCC LALR elemzőket használ, de 2006-ban lassan váltott a C rekurzív leszállású elemzőire. Az optimalizálási részhez érve, amint az már ismert, ez a fordítás bármely szakaszában megtörténhet. Itt azonban a tömeges optimalizálást a kód generálása előtt és a szintaxis, szemantikai elemzés után hajtjuk végre. Az alábbiakban bemutatjuk a GCC néhány optimalizálását.

  1. Ez kiküszöböli a Holt Kód darabokat.
  2. Ez kiküszöböli a redundanciát kódszinten.
  3. Az aggregátumok cseréje a skaláris szinthez viszonyítva.
  4. Optimalizálást végez az Arrays segítségével.

A GCC-ben a háttérvonalat az előfeldolgozó makrók és az adott architektúrára jellemző funkciók határozzák meg. Ezt a kódot általában úgy építik fel, hogy először meghív egy kis részletkódot, amelyet az egyes mintákhoz társítanak, és utasításokat generálnak az utasításkészletből. Ez az újratöltési szakaszban kiválasztott regiszterek, eltolások és címek segítségével történik. A GCC jelenlegi verziója 9.2, amelyet 2019. augusztus 12-én adtak ki.

5) Clang

  1. Csengés; a C-vel együtt, a C ++, Objective-C és Objective-C ++ programozási nyelvek fordítója is. Ez a fordító LLVM-et használ a hátsó kóddal kapcsolatos fordításokhoz. Ezt a fordítót úgy tervezték, hogy helyettesítse a GCC-t azáltal, hogy támogatja számos fordítási zászlóját és nyelvi kiterjesztését.
  2. A Clangnak számos közreműködője van, köztük az Apple, a Microsoft, a Google, a Sony és az Intel. Ez egy nyílt forráskódú szoftver. Az LLVM-et először a GCC használta a kezelőfelület fordításához, de a GCC némi problémát okozott az Apple fejlesztőinek, mivel a forráskód nagy és nehéz használni. Tehát, jöttek a Clanghoz.
  3. A Clang egyik fő célja könyvtáralapú architektúra biztosítása. Úgy tervezték, hogy több információt tároljon a fordítási folyamat során, mint a GCC. Ez elősegíti az eredeti kód általános alakjának megőrzését.
  4. A Clang által az összeállítás során előállított hibajelentés mindig részletes és konkrét, géppel olvasható formátumban. A Clang mindig is arra törekedett, hogy csökkentse a memóriaterület túlzott felhasználását és növelje az összeállítási sebességet a GCC-hez képest, és ezeknek a tulajdonságoknak köszönhetően egy időben az egyik leggyorsabban növekvő használt fordítóvá vált. De egy idő alatt a Clang fellépése kezdett csökkenni. A jelentések szerint a teljesítmény szinte nagy különbségekkel elmaradt a GCC-hez képest, és a teljesítménye lassabb volt. A legfrissebb összehasonlítások azt mutatják, hogy mindkét fordító felállt, és növelte teljesítményét, és ismét nagy versenyt teremtett köztük. Ennek ellenére a GCC továbbra is a lista tetején áll.

Következtetés

Bár sok fordító áll rendelkezésre a C-hez, a GCC kiemelkedik, hogy jelenleg a legjobb. A győztes nyilatkozat itt a tartósságra, az optimalizálásra, a sebességre és a kód / hiba / szintaxis ellenőrzésre épül. Ezen keresztül egyértelműen megértjük, hogy a fordító fontos pillére a programozási nyelveknek. Munkájuk nélkül bármilyen program, amelyet írunk, csak szemét lenne a rendszer számára.

Ajánlott cikkek

Ez egy útmutató a legjobb C-összeállítókhoz. Itt öt rövid ponttal tárgyaljuk a C-összeállítók magyarázatait. Megnézheti a másik javasolt cikket is, ahol további információt szerezhet-

  1. Python összeállítók
  2. Java fordító
  3. Hogyan kell telepíteni C
  4. A C előnyei
  5. Bevezetés a PHP fordítóba
  6. JavaScript fordító

Kategória: