Corso di C con Linux

Cos' un compilatore e introduzione al GCC

 

Strumenti di programmazione

Sommario
Che cosa è un compilatore?
Il Gnu C compiler (GCC)
Introduzione agli editor di testo

Il Gnu Make

Automake e Autoconf
Creiamo un pacchetto con Automake e Autoconf.
Il Gnu Debugger
Scrivere la guida in linea (man page)
Creiamo un RPM.

È particolarmente importante per un programmatore avere strumenti flessibili di programmazione. In Linux sono stati sviluppati contemporaneamente al sistema operativo una miriade di linguaggi di programmazione ed alcuni strumenti utilissimi per testare e verificare i programmi. In questo capitolo introdurremo gli strumenti di base, che useremo per tutto il resto del libro, tra cui il compilatore GCC(Gnu C Compiler), il debugger GDB(Gnu Debugger) il GNU Make e l'editor Emacs.
Iniziamo allora a capire come funziona un compilatore per poi passare a una breve descrizione del GCC.

Che cosa è un compilatore?

I compilatori sono fondamentali per la moderna informatica. Essi agiscono come traduttori, trasformando i linguaggi di programmazione orientati all'uomo (human oriented) nei linguaggi di programmazione orientati alla macchina (machine oriented) . Per la maggior parte degli utenti, un compilatore può quindi essere visto come una scatola nera, che compie la trasformazione illustrata nella figura 2-1.

Che cosa fanno i compilatori ?

La figura 2-1 mostra un compilatore come un traduttore da un linguaggio di programmazione a linguaggio macchina. Questa descrizione ci suggerisce che tutti i compilatori fanno grossomodo la stessa cosa, la sola differenza sta nella scelta del linguaggio sorgente e del codice macchina destinazione. Tuttavia, la situazione è un po' più complicata di quello che appare, infatti prima di produrre il codice eseguibile si passa attraverso il linking.

Il Gnu C compiler (GCC)

Il GCC è il compilatore C standard (de facto) per la piattaforma Linux, in quanto supporta tutti i moderni standard C, come l'ANSI C, ed ha molte estensioni proprie, che possono essere usate per l'ottimizzazione del codice. Essendo un compilatore multipiattaforma, consente anche di compilare codice per macchine non-Intel. Il GCC ha moltissime opzioni, ma noi durante tutto il libro ne useremo solo un sottoinsieme, che elenchiamo nella tabella sottostante fornendo esempi d'uso. Per coloro che fossero particolarmente curiosi, si consiglia la info page del GCC, che descrive in maniera dettagliata ogni opzione.

 

Torna all'indice Generale del corso di Corso di C con Linux di Software Planet