Panoramica dei compilatori C.

Impariamo questo concetto di compilatori con un esempio. Supponi di essere stato in un luogo in cui le lingue che parli sono completamente diverse l'una dall'altra e ora hai avuto alcuni problemi di viaggio e vuoi comunicare lo stesso con loro. Come? Avevi bisogno di un traduttore, giusto? Decidi di avere qualcuno in grado di capire la tua lingua e tradurre e far capire alla persona opposta cosa vuoi dire. Allo stesso modo, scriveremmo il nostro codice C in un linguaggio di alto livello che è un formato comprensibile all'uomo. In che modo il programma capirebbe cosa gli abbiamo chiesto di fare? Qui è dove il compilatore entra in scena. Un compilatore trasforma e traduce un linguaggio di fascia alta in un linguaggio comprensibile da macchina (basso livello). Il processo di compilazione esegue meccanismi di traduzione di base e anche il rilevamento degli errori. La compilazione del front-end include analisi lessicali, sintattiche e semantiche. E nel back-end, la compilazione esegue la generazione e l'ottimizzazione del codice. Quindi ci sono molti compilatori in C come BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express, ecc. Scopriamo di più su alcuni di essi.

Spiegazioni ai compilatori C.

Di seguito sono riportati i migliori compilatori di C:

1) Borland Turbo C

Turbo C è uno dei compilatori di base e popolari per il linguaggio di programmazione C. Questo è stato introdotto per la prima volta nel 1987; era popolare per le sue dimensioni ridotte, la velocità di compilazione e il prezzo basso. Una volta rilasciato Turbo C ++ nel 1990, entrambi i compilatori vengono uniti e il nome Turbo C è stato sospeso. Nel 2006, Embarcadero Technologies aveva rilasciato nuovamente Turbo C come freeware. Ti ricordi questa schermata blu?

2) Piccolo compilatore C.

Il minuscolo compilatore C è progettato per funzionare su computer lenti con poco spazio su disco. Questo è un compilatore C per processore ARM. Questo compilatore ha iniziato il suo supporto a Windows dal 2005. Alcune delle sue funzionalità sono menzionate di seguito.

  1. La dimensione del file è piccola e secondo il proprietario di questo compilatore (Fabrice Bellard). La solidità di questo compilatore è circa nove volte più veloce di GCC. La compilazione, l'assemblaggio e il collegamento del codice erano gli attributi principali considerati per misurare la solidità di questo compilatore.
  2. Questo compilatore aveva incluso molte funzionalità specifiche del compilatore per potenziare la memoria opzionale, il checker associato e una maggiore stabilità del codice.
  3. Questo compilatore consente l'esecuzione automatica dei programmi durante il tempo di compilazione utilizzando solo argomenti della riga di comando. In questo modo, i programmi vengono eseguiti sotto UNIX, usando script di shell. L'ultima versione è stata rilasciata a dicembre 2017.

3) Compilatore C portatile

Il Portable C Compiler (PCC) è stato un compilatore molto usato e consolidato per il linguaggio di programmazione C che è quasi alla metà del 1970. Questo compilatore ha avuto una lunga durata. Questo era prevalente durante un periodo in modo tale che molti compilatori C si basavano su di esso. I vantaggi di PCC dipendevano dalle sue capacità e previsioni di probabilità. Il compilatore PCC è stato creato in modo tale che i file di origine dipendessero dalla macchina, non tutti ma solo alcuni di essi. Può rilevare errori di sintassi ed eseguire controlli di validità perfetti. Una nuova versione di PCC è stata rilasciata il 10 dicembre 2014.

4) GCC

GNU Compiler Collection è il compilatore prodotto dal Progetto GNU. Questo supporta molti linguaggi di programmazione ed è una base di software libero sotto la General Public License. Questo compilatore è stato rilasciato per la prima volta nel 1987 e all'inizio supportava solo il linguaggio di programmazione C. Lentamente si espanse in C ++, Java, Android e IOS. Qui, ciascuno dei compilatori di lingue diverse ha il proprio programma che legge il codice scritto e invia il codice macchina come output. Tutti questi hanno una struttura interna comune. Quando viene scritta una lingua di alto livello, come per la lingua in cui è scritta, il compilatore analizza il codice in quella lingua e produce un albero di sintassi astratto. GCC utilizza parser LALR, ma è passato lentamente ai parser a discesa ricorsiva per C nel 2006. Venendo alla parte di ottimizzazione, come già noto, ciò può accadere durante qualsiasi fase della compilazione. Tuttavia, qui le ottimizzazioni di massa vengono eseguite prima della generazione del codice e dopo la sintassi, analisi semantica. Di seguito sono riportate alcune delle ottimizzazioni eseguite da GCC.

  1. Può eliminare i pezzi del Codice morto.
  2. Può eliminare la ridondanza a livello di codice.
  3. Sostituzione di aggregati rispetto al livello scalare.
  4. Può eseguire ottimizzazioni con gli array.

In GCC il back-end è specificato da macro preprocessore e funzioni specifiche per una particolare architettura. Questo codice viene generalmente creato chiamando innanzitutto un piccolo codice snippet che è associato a ciascun modello e genera istruzioni dal set di istruzioni. Viene fatto utilizzando registri, offset e indirizzi scelti durante la fase di ricaricamento. L'attuale versione di GCC è la 9.2, che è stata rilasciata il 12 agosto 2019.

5) Clang

  1. clang; incluso C, è anche un compilatore per i linguaggi di programmazione C ++, Objective-C e goal-C ++. Questo compilatore utilizza LLVM per le compilazioni relative al codice back-end. Questo compilatore è stato progettato per fungere da sostituto del GCC supportando molti dei suoi flag di compilazione e le estensioni del linguaggio.
  2. Clang ha molti collaboratori tra cui Apple, Microsoft, Google, Sony e Intel. È un software open source. LLVM è stato usato per la prima volta da GCC per la compilazione del front-end, ma GCC aveva causato alcuni problemi agli sviluppatori di Apple, poiché il codice sorgente è grande e difficile da usare. Quindi, avevano inventato Clang.
  3. Uno dei principali obiettivi di Clang è fornire un'architettura basata su libreria. È progettato per conservare più informazioni durante il processo di compilazione rispetto a GCC. Questo aiuta anche a preservare la forma complessiva del codice originale.
  4. Il rapporto di errore generato da Clang durante la compilazione è sempre in un formato dettagliato e specifico in un formato leggibile automaticamente. Clang aveva sempre mirato a ridurre l'eccessivo utilizzo dello spazio di memoria e ad aumentare la velocità di compilazione rispetto a GCC, e grazie a queste qualità, era diventato uno dei compilatori utilizzati con la crescita più rapida durante un certo periodo di tempo. Ma per un certo periodo la performance di Clang iniziò a diminuire. I rapporti hanno riferito che le prestazioni sono rimaste in ritardo con differenze quasi notevoli rispetto a GCC e hanno iniziato a presentare prestazioni più lente. I confronti più recenti indicano che entrambi i compilatori erano arrivati ​​e hanno aumentato le loro prestazioni, creando ancora una volta una grande competizione tra di loro. Tuttavia, GCC rimane in cima alla lista.

Conclusione

Sebbene ci siano molti compilatori disponibili per C, GCC si distingue per essere uno dei migliori al momento. La dichiarazione del vincitore qui si basa su durabilità, ottimizzazione, velocità e controlli di codice / errore / sintassi. Attraverso questo, possiamo chiaramente capire che il compilatore è un pilastro importante per i linguaggi di programmazione. Senza il loro lavoro, qualunque programma scriviamo sarebbe solo spazzatura per il sistema.

Articoli consigliati

Questa è stata una guida ai migliori compilatori C. Qui discutiamo le spiegazioni dei compilatori C con cinque brevi punti. Puoi anche consultare il nostro altro articolo suggerito per saperne di più-

  1. Compilatori Python
  2. Compilatori Java
  3. Come installare C
  4. Vantaggi di C
  5. Introduzione al compilatore PHP
  6. Compilatori JavaScript

Categoria: