Pregled C sastavljača

Naučimo ovaj primjer sastavljača s primjerom. Pretpostavimo da ste bili na mjestu gdje se jezici na kojima govorite potpuno razlikuju jedni od drugih, a sada ste imali nekih problema s putovanjima i želite s njima komunicirati isto. Kako? Jeste li trebali prevoditelja? Odlučite imati nekoga tko može razumjeti vaš jezik i prevesti i dopustiti suprotnoj osobi da razumije što ste željeli reći. Na isti bi način naš C kod pisali jezikom na visokoj razini koji je ljudski razumljiv format. Kako bi program razumio ono što smo od njega tražili? Ovdje kompajler ulazi u sliku. Pregovarač transformira i prevodi high-end jezik u strojno razumljiv jezik (niska razina). Proces sastavljanja čini osnovne mehanizme prevođenja, a također i otkrivanje pogreške. Kompilacija prednjeg kraja uključuje leksičku, sintaksu i semantičku analizu. I na kraju, kompilacija omogućuje generiranje i optimizaciju koda. Dakle, na C-u postoje mnogi prevoditelji poput BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express, itd. Upoznajmo više o nekoliko njih.

Objašnjenja C sastavljačima

Ispod su najbolji sastavljači programa C:

1) Borland Turbo C

Turbo C jedan je od osnovnih i popularnih prevodilaca za programski jezik C. Ovo je prvi put predstavljeno 1987. godine; bio je popularan zbog svoje male veličine, brzine sastavljanja i niske cijene. Jednom kada je Turbo C ++ izašao 1990. godine, oba su prevodilaca spojena, a naziv Turbo C prestao je s radom. 2006. godine Embarcadero Technologies je ponovno izdao Turbo C kao besplatni. Sjećate li se ovog plavog ekrana?

2) Kompletnik za malene C

Tiny C Compiler dizajniran je za rad na sporim računalima s malo diskovnog prostora. Ovo je kompajler AR procesora AR. Ovaj je prevoditelj počeo s podrškom za Windows od 2005. Neke su njegove značajke navedene u nastavku.

  1. Njegova je veličina datoteke mala i prema vlasniku ovog prevoditelja (Fabrice Bellard). Postojanost ovog prevoditelja je oko devet puta brža od GCC-a. Kompilacija, sastavljanje i povezivanje koda bili su glavni atributi koji su uzeti u obzir za mjerenje postojanosti ovog prevoditelja.
  2. Ovaj je prevoditelj uključio brojne značajke specifične za kompajlere kako bi se povećala neobavezna memorija, vezana provjera i imala veća stabilnost koda.
  3. Ovaj prevodilac omogućuje automatsko izvršavanje programa za vrijeme kompilacije samo korištenjem argumenata naredbenog retka. Na ovaj se način programi izvršavaju pod UNIX-om pomoću skripti shell-a. Posljednja verzija objavljena je u prosincu 2017. godine.

3) Prijenosni C sastavljač

Prijenosni C prevoditelj (PCC) bio je vrlo rani i uspostavljeni prevodilac za programski jezik C, koji je otprilike sredinom 1970. godine. Ovaj sastavljač imao je dug životni vijek. To je prevladavalo tijekom razdoblja na takav način da su se mnogi C prevodioci temeljili na njemu. Prednosti PCC-a ovisile su o njegovim mogućnostima i predviđanjima vjerojatnosti. PCC prevodilac je napravljen tako da izvorne datoteke ovise o stroju, ne sve, nego samo neke. Može otkriti sintaksičke pogreške i može obaviti savršene provjere valjanosti. Nova verzija PCC-a objavljena je 10. prosinca 2014.

4) GCC

Zbirka GNU Compiler je kompajler proizveden od strane GNU Projekta. To podržava mnoge programske jezike i besplatni je softver pod Generalnom licencom. Ovaj je prevoditelj prvi put objavljen 1987. godine i podržao je samo programski jezik C. Polako se proširio na C ++, Java, Android i IOS. Ovdje svaki od različitih prevoditelja jezika ima svoj program koji čita napisan kod i šalje strojni kod kao izlaz. Sve ove imaju zajedničku unutarnju strukturu. Kad se piše jezik na visokoj razini, prema jeziku na kojem je napisan, prevodilac analizira kôd na tom jeziku i stvara apstraktno stablo sintakse. GCC koristi LALR parsere, ali se polako prebacio na parcele rekurzivnog spuštanja za C u 2006. Dolazak do dijela za optimizaciju, kao što je već poznato, može se dogoditi tijekom bilo koje faze kompilacije. Međutim, ovdje se skupna optimizacija provodi prije generiranja koda i nakon sintakse, semantičke analize. Ispod je nekoliko optimizacija koje provodi GCC.

  1. To može ukloniti mrtve dijelove.
  2. Može ukloniti suvišnost na razini koda.
  3. Zamjena agregata s obzirom na skalarnu razinu.
  4. Može provesti optimizacije s nizovima.

U GCC-u je krajnji kraj određen makronaredbama predprocesora i funkcijama specifičnim za određenu arhitekturu. Ovaj se kôd obično gradi tako što prvo pozovete mali isječak kôda koji je povezan sa svakim uzorkom i generiraju upute iz skupa instrukcija. To se vrši pomoću registara, odstupanja i adresa koje su odabrane u fazi ponovnog učitavanja. Trenutna verzija GCC-a je 9, 2 koja je objavljena 12. kolovoza 2019. godine.

5) Clang

  1. jeka; uključujući C, također je prevoditelj za programske jezike C ++, Objective-C i target-C ++. Ovaj prevodilac koristi LLVM za kompilacije koje se odnose na zadnji kraj. Ovaj je prevodilac zamišljen da djeluje kao zamjena za GCC podržavajući mnoge njegove kompilacijske zastave i jezična proširenja.
  2. Clang ima mnogo suradnika, uključujući Apple, Microsoft, Google, Sony i Intel. To je softver otvorenog koda. LLVM je GCC prvi put koristio za kompilaciju, ali GCC je stvorio određene probleme programerima kod Applea, jer je izvorni kod velik i težak za upotrebu. Dakle, smislili su Clang.
  3. Jedan od glavnih ciljeva Clang-a je osigurati arhitekturu koja se temelji na knjižnici. Dizajniran je da zadrži više informacija tijekom postupka kompilacije nego GCC. To također pomaže u očuvanju cjelokupnog oblika izvornog koda.
  4. Izvješće o pogreškama koje generira Clang tijekom kompilacije uvijek je detaljno i specifično u strojno čitljivom obliku. Clang je oduvijek imao za cilj smanjiti pretjerano korištenje memorijskog prostora i povećati brzinu kompilacije u usporedbi s GCC-om, a zahvaljujući tim kvalitetama, postao je jedan od najbrže rastućih sastavljača korištenih tijekom određenog vremena. No tijekom nekog vremena izvedba Clanga počela je opadati. Izvješća kažu da je izvedba zaostajala s gotovo velikim razlikama u usporedbi s GCC-om i da je imala sporije performanse. Najnovije usporedbe pokazuju da su se i sastavljači pojavili i povećali svoju izvedbu te ponovno stvorili veliku konkurenciju među njima. Ipak, GCC ostaje na vrhu popisa.

Zaključak

Iako postoje mnogi prevoditelji dostupni za C, GCC se ističe kao jedan od najboljih do sada. Izjava o pobjedniku se zasniva na trajnosti, optimizaciji, brzini i provjeri koda / pogreške / sintakse. Kroz ovo jasno možemo shvatiti da je prevoditelj važan stup programskim jezicima. Bez njihovog rada, bilo koji program koji pišemo bilo bi samo smeće za sustav.

Preporučeni članci

Ovo je vodič za najbolje C sastavljače. Ovdje ćemo razgovarati o objašnjenjima C Compilera s pet kratkih točaka. Možete i proći kroz naš drugi predloženi članak kako biste saznali više -

  1. Python sastavljači
  2. Kompajleri Java
  3. Kako instalirati C
  4. Prednosti C
  5. Uvod u PHP prevodilac
  6. Kompajleri JavaScripta

Kategorija: