Articolo originale: C++ Compiler Explained: What is the Compiler and How Do You Use it?

Introduzione ai compilatori C++

Prima di iniziare ad utilizzare C++, è bene che tu impari qualcosa a riguardo dei compilatori e come viene eseguito C++ sul tuo computer.

In fin dei conti, i computer comprendono soltanto una lingua, il linguaggio macchina, che è interamente costituito da codice binario, una sequenza di 0 e 1.

Nonostante sia possibile programmare in binario, sarebbe incredibilmente fastidioso e occorrerebbe una grande quantità di tempo per farlo effettivamente. Per questo, sono stati creati linguaggi di programmazione che semplificano lo sviluppo dei software.

Il linguaggio assembly ha una corrispondenza diretta con il linguaggio macchina. Linguaggi come C, C++ e COBOL sono di livello un po' più alto e necessitano di essere compilati. Ma si può andare ben oltre. Linguaggi come JavaScript e Python hanno componenti che vengono tradotte in C++ o altri linguaggi prima di essere compilati, facendo sì che siano effettivamente di un livello più alto rispetto a C o C++.

Dato che l'architettura di un computer è composta da una serie di componenti che funzionano soltanto con il codice binario (sequenze di 0 e 1), hai bisogno di un compilatore per tradurre il codice dal livello di C++ fino al linguaggio macchina comprensibile dalla CPU.

Come funzionano i compilatori

I compilatori sono programmi di utilità che prendono il tuo codice e lo trasformano in file eseguibili in codice macchina.

Durante il processo di compilazione, per prima cosa, il preprocessore legge il codice sorgente (il file C++ che hai scritto) e cerca delle direttive particolari (le righe che iniziano con un #). Le direttive di precompilazione fanno sì che il preprocessore modifichi il codice (di solito, aggiungendo delle librerie o altri file C++).

In seguito, il compilatore lavora sul codice preprocessato traducendolo riga per riga in istruzioni in un linguaggio macchina adeguato. In caso di errori di sintassi nel codice sorgente, viene restituito un errore sulla riga di comando.

Infine, se non sono presenti errori, il compilatore crea un file oggetto nel linguaggio macchina necessario per l'esecuzione sul tuo computer. Nonostante il file oggetto che il compilatore ha appena creato, con ogni probabilità, è in grado di fare qualcosa sul tuo computer, non è ancora un programma in C++ funzionante. C'è un ultimo passaggio affinché diventi un programma eseguibile.

C++ contiene delle vaste librerie con per aiutare a svolgere attività complicate come la manipolazione di I/O e hardware. Puoi includere queste librerie con le direttive di precompilazione, ma il preprocessore non le include automaticamente nel tuo codice.

Per ottenere un programma eseguibile, un'altra utilità, nota come linker, deve combinare i tuoi file oggetto con le funzioni della libreria necessarie all'esecuzione del codice.

Immagina di avere tutti mattoni necessari per costruire una casa. Il compilatore ha realizzato tutti i mattoni, ma il linker è necessario per farli stare insieme e costruire la casa. Una volta fatto questo, hai un file eseguibile funzionante!

Come compilare un file

Supponiamo di avere un file in C++ chiamato helloWorld.cpp

Su Windows

Usando IDE come CodeBlocks

Basta cliccare sul pulsante run per creare un file nella cartella del progetto.

Usando il prompt dei comandi

  1. Apri un prompt dei comandi per sviluppatori - Per questo passaggio, avrai bisogno di Microsoft Visual Studio o di qualche IDE che ti permette di compilare il tuo programma dalla riga di comando. Puoi anche cercare dei compilatori C++ online .
  2. Vai direttamente al codice sorgente
  3. Esegui il compilatore sul tuo codice sorgente (se stai usando il compilatore di Microsoft Visual Studio) cl /EHsc helloWorld.cpp
    In questo modo, verrà creato un file oggetto, e poi collegato automaticamente. Se controlli nella stessa cartella, vedrai un file eseguibile helloWorld.exe (nota l'estensione)
  4. Scrivi helloWorld sul prompt ed esegui il file

Alternativamente, molti IDE permettono di costruire rapidamente e vedere il tuo programma. Questa opzione potrebbe essere più semplice dato che la tua versione di Windows potrebbe non essere dotata di un compilatore.

Su Linux o OSX

  1. Apri la finestra del terminale e vai sulla cartella con il codice sorgente
  2. Esegui il compilatore sul tuo codice sorgente g++ helloWorld.cpp -o helloWorld
    Verrà creato un file oggetto, e poi collegato automaticamente. Se controlli nella stessa cartella, vedrai un file eseguibile helloWorld.exe (nota l'estensione)
  3. Scrivi ./helloWorld nella finestra del terminale per eseguire il file

g++ è il compilatore standard di Linux in dotazione col sistema operativo ed è di grande utilità.

NOTA: per compilare ed eseguire direttamente il tuo codice, esegui g++ -o helloWorld helloWorld.cpp; ./helloWorld, così quando hai bisogno di compilare ed eseguire del codice ripetutamente, puoi utilizzare la freccia su + invio.

Esistono tanti altri tipi di compilatori. I due menzionati qui sono quelli normalmente in dotazione con Windows o Linux/OSX.

Più info on C++