Prima di addentrarci nei dettagli del linguaggio C, vediamo quali sono gli strumenti necessari e come fare per scrivere ed eseguire i nostri programmi.
Io qui darò solo una piccola panoramica, cercando di essere quanto più oggettivo possibile su pregi e difetti di ciascuno strumento, ma sappiate che in questo campo, più che in altri, esistono delle vere e proprie scuole di pensiero inconciliabili tra loro quindi, come sempre, provate, sperimentate e poi decidete con la vostra testa quali sono gli strumenti con i quali vi trovate più a vostro agio.
Questo articolo è diviso in due parti, nella prima vedremo quali sono gli strumenti minimi per iniziare a programmare in C a seconda del sistema opearativo utilizzato, mentre nella seconda parte vedremo quali sono i programmi che offrono qualche funzionalità in più. Completeremo entrambe le sezioni con un esempio concreto di scrittura e compilazione di un semplice programma.
PARTE 1 – Spirito minimalista
Per realizzare un programma scritto in linguaggio C gli strumenti veramente indispensabili sono davvero pochi:
- un editor di testi
- un compilatore
Nient’altro! A seconda del sistema operativo che state utilizzando potete utilizzare programmi diversi, nell’elenco seguente ho elencato i più comuni:
Microsoft Windows
Chi programma utilizzando un computer con sistema operativo Microsoft Windows di solito non apprezza molto l’utilizzo di strumenti così scarni come un editor ed un compilatore, di norma predilige un pacchetto più completo, però se volete evitare di appesantire troppo la vostra macchina windows ecco un elenco di programmi leggeri leggeri.
Editor di testi
Come editor di testi potrebbe bastare anche il banale Blocco note ma quello è davvero fin troppo minimal, sicuramente vi troverete molto meglio con un programma come notepad++ (link) oppure Scite (link). Sono entrambi programmi gratuiti e si installano senza alcuna difficoltà. Hanno alcune funzionalità adatte proprio per chi scrive programmi, come la colorazione del testo differenziata a seconda delle parole del linguaggio, la visualizzazione del numero delle righe, il collapse dei blocchi di istruzioni, la gestione di più file tramite tab e molto altro (capirete strada facendo quanto siano importanti queste “piccole” funzionalitò, ora prendete tutto per buono). In questa foto i due programmi fianco a fianco. (Per gli screenshoot ringraziamo ancora la mia dolce metà che si ostina ad utlizzare windows 7 🙂 )

Il compilatore
Per compilare i programmi scritti in C sotto windows vi servirà un compilatore C. Ne esistono tanti, sia prodotti da microsoft, sia OpenSource. Quello che vi consiglio io è un kit di programmi OpenSource che si chiama MinGW (Minimali GNU for Windows) e, una volta scaricato da questo indirizzo (link) ed installato, vi permetterà di compilare con estrema facilità i vostri programmi.
L’installazione è semplice e non presenta alcuna difficoltà, purtroppo però la cartella di installazione non viene aggiunta alla variabile d’ambiente PATH di window, e questo comporterebbe qualche fastidio in fase di compilazione. Le seguenti istruzioni sono valide per windows seven ma per le altre versioni di windows la procedura è molto simile.
- Dal pannello di controllo cliccate sull’icona “Sistema”
- Dalla schermata che vi si apre cliccate sulla voce “Impostazioni di sistema avanzate” che trovate nell’elenco a sinistra
- Nella finestra “Proprietà del sistema” cliccate sul pulsante “Variabili d’ambiente” presente nella scheda “avanzate”
- Selezionate nella finstra “variabili d’ambiente”, dall’elenco “Variabili di sistema” la voce “Path” e cliccate sul pulsante “modifica”.
- Aggiungete in fondo alla stringa il testo “c:\mingw\bin” (senza le virgolette e senza lasciare spazi) NB questa stringa si riferisce alla cartella di installazione di default, se durante l’installazione avete apportato delle modifiche cambiatela di conseguenza.
- Cliccate su “ok” per chiudere tutte le finestre.
- Riavviate il computer o effettuare la disconnessione e nuovo login

Per essere sicuri che tutto sia avvenuto correttamente aprite una finestra del prompt dei comandi (tramite start -> cmd -> invio) nella finestra che appare scrivete “gcc” senza virgolette e premete invio.
Se il messaggio restituito è “gcc: no input files” è tutto ok, se invece il messaggio è “gcc non è stato riconosciuto etc etc..” qualcosa è andato storto (rifate tutto da capo).

Linux
Gli utilizzatori linux sono per definizione amanti degli strumenti scarni e senza fronzoli, quindi si troveranno a loro agio in questo ambiente minimalista.
Editor di testi
Gli utenti linux possono utilizzare sia editor di testi con interfaccia grafica come gedit, normalmente installato con distribuzioni come Ubuntu, oppure editor di testi da terminale, come nano, vim ed emacs. Se non conoscete vim o emacs allora utilizzate Gedit, se invece li conoscete probabilmente avrete già saltato questo paragrafo 🙂

Il compilatore
A seconda della distribuzione linux che state utilizzando il compilatore C potrebbe già essere installato di default, ma se non lo fosse basta installarlo con il packet manager predefinito della vostra distribuzione. Per ubuntu il comando da eseguire è:
apt-get install build-essential
Allo stesso modo, se siete utenti windows, verificate prima di continuare che tutto sia andato per il verso giusto aprendo un terminale e scrivendo “gcc” senza virgolette e pigiando invio. Il messaggio deve essere “no input file”.
MacOS
Gli utenti mac sono spesso utenti a cui piace la vita comoda, e prediligono strumenti software un tantino più elaborati, ma tenendo conto che molti utenti mac hanno anche una buona infarinatura linux non disdegneranno qualche consiglio per lavorare con programmi minimalisti.
Editor di testi
Esistono davvero tanti programmi adatti allo scopo per MacOS, alcuni sono gratis, altri a pagamento. Ho trovato molto comodo Smultron (link) e TextWrangler (link). Anche TextMate (link) è un ottimo software, ma è a pagamento.

Il compilatore
Il sistema più comodo per avere il compilatore C su MacOS è quello di installare XCode, il software prodotto dalla apple specifico per realizzare i nostri programmmi. Di questo programma parleremo più avanti, per l’installazione basta inserire il cd di snow leopard all’interno del lettore e cliccare sull’icona “install optional components” oppure scaricare il pacchetto più aggiornato di XCode dal sito di apple developer (attenzione, sono circa 4 gigabyte!). Sul sito viene richiesta la registrazione gratuita.
Soluzioni multipiattaforma
I programmi che ho elencato sono quelli più comuni per i diversi sistemi operativi ma, soprattutto nel caso di software open source, esistono più versoni dello stesso programma adatte anche agli altri sistemi. È possibile infatti utilizzare Gedit ed emacs anche su MacOS o notepad++ su linux e via dicendo. Questo può essere utile soprattutto se si lavora su postazioni diverse, utlizzare sempre lo stesso programma anche su due piattaforme diverse aumenterà la vostra produttività.
Come generare il nostro primo programma
A questo punto vediamo come si crea un programma con questi strumenti appena installati. Bisognerà scrivere con l’editor di testi che abbiamo scelto il nostro programma, in questo momento non lo sappiamo fare, ma fidatevi di me e copiate e incollate nel vostro editor di testi preferito il seguente codice:
#includeint main() { printf("Questo e' il mio primo programma\n"); return 0; }
Lo scopo di questo programma è visualizzare il messaggio “Questo è il mio primo programma” all’interno di una finestra di comando o terminale.
Salvate il file in una cartella a vostra scelta con il nome di “primoprogramma.c”.
Adesso se state utilizzando windows aprite il prompt dei comandi (start -> cmd -> INVIO) oppure un terminale se state utilizzando linux o mac e spostatevi nella cartella in cui avete salvato il file (Il comando da dare è “CD nomecartella” ). Avviamo il processo di compilazione del nostro programma digitando:
gcc primoprogramma.c
Se tutto è andato come si deve dopo un attimo vedrete apparire nella stessa cartella di “primoprogramma.c” un file chiamato “a.exe” se stiamo utlizzando un sistema operativo windows, altrimenti su linux e MAcOS il file si chiamerà “a.out”. Questo è il nostro primo programma compilato e pronto ad essere eseguito.
L’esecuzione di questo programma sui sistemi windows e linux/macos è leggermente diversa, per quanto riguarda i sistemi windows basterà digitare, nella stessa finestra dove si è digitato il comando precedente
a.exe
e dare invio, mentre per i sitemi linux e MacOS il comando da digirare sul terminale è:
./a.out
Se non ci sono stati errori dovreste veder apparire il testo “Questo è il mio primo programma”.
Nota sul comando per linux/macos: perchè bisogna digitare “./a.out”? invece di “a.out”? Il problema nasce per una questione di sicurezza. Se in linux/macosx digitiamo il nome di un programma questo viene ricercato solo nelle cartelle che sono state specificate nella variabilie d’ambiente PATH. Se il programma non risiede in una di queste cartelle il sitema non lo trova, e bisogna quindi fornirgli tutto il percorso del file come “/home/mioutente/desktop/a.out” oppure, utilizzando il punto come sinonimo di directory corrente “./a.out”.
Ci si potrebbe chiedere come mai linux/macosx siano così “stupidi” da non trovare un programma che risiede nella cartella attuale, ma ovviamente non è una questione di “stupidità” ma di sicurezza, perchè cosa succederebbe se un utente smaliziato inserisse sul desktop un programma che si chiama ad esempio “ls” che invece di elencare i file vi danneggia il sistema? Succederebbe che scrivendo “ls” sul terminale, invece di richiamare il file originale residente in “/bin” verrebbe richiamato il programma modificato, con il risultato di mettere a rischio l’intero sistema. Ecco perchè su linux/macosx bisogna digitare “./a.out”.
PARTE 2 – Sistemi più completi
Alcuni utenti potrebbero preferire l’utilizzo di programmi più completi rispetto a quelli elencati nella precedente sezione, dove quantomento la fase di stesura del codice e di compilazione siano integrate. Questi programmi si chiamano IDE (Integrated Developement Environment) (link) e ve ne sono veramente tanti ed è difficile stabilire quale sia il migliore.
Microsoft Windows
Devo ammettere di non essere un fan del mondo windows, quindi confesso la mia ignoranza in merito ai tool di sviluppo creati direttamente da microsoft. Esiste un ide, della famiglia Visual studio, specifico per programmare in C++, che si chiama Visual C++ 2010 Express. Provatelo se volete e mandatemi i vostri pareri. Io consiglio piuttosto un ide molto più leggero e pratico che ha anche il vantaggio di essere multipiattaforma, sto parlando di Code::Block (link) In questa immagine lo vediamo al massimo delle sue funzionalità.

Linux
Gli utenti linux che volessero utilizzare un ide possono optare per utilizzare lo stesso Code:Block già consigliato per gli utenti windows, oppure ancora un altro ide molto utilizzato: Anjuta. L’installazione di Anjuta è molto semplice perchè è già presente in versione pacchettizzata, quindi basta digitare su un terminale, in questo caso su una distro ubuntu:
apt-get install anjuta
Una volta installato anjuta avviatelo e scegliete dal menù “file -> new project” e selezionate il tipo di progetto “generic (minimal)”

In un wizard vi verranno richiesti dei semplici dati di configurazione del progetto, compilateli con le vostre infomazioni e cliccate su “forward” fino ad arrivare alla fine del wizard:



Una volta completato il wizard anjuta presenta nuovamente la schermata principale, sulla sinistra sono presenti i file del progetto, mentre sulla destra è presente l’editor.
Nella colonna con i file del progetto sono presenti veramente tanti file, ma tra tutti solo uno è il file con il programma, si chiama “main.c”, tutti gli altri sono i file di configurazione di anjuta e script per l’installazione del programma. Facciamo doppio click su “main.c” e ne vedremo il contenuto nella finestra dell’editor.
Oltre il testo blu, che sono dei commenti al programma, troviamo una parte di codice molto simile a quella che avevamo scritto nella sezione precedente. In questo caso il programma non fa altro che far apparire la stringa di testo “Hello world”.

Per testare il programma bisogna cliccare sul menù “build” la voce “build project”, che servirà a compilare il nostro progetto, l’equivalente ma più complesso del precedente “GCC primoprogramma.C” e successivamente cliccare dal menù “run”, la voce “execute”.
Il risultato dell’esecuzione sarà visibile in una finestra in basso.

MacOS
L’ide per eccellenza di MacOS è Xcode. È prodotto dalla stessa Apple ed è gratuito, basta registrarsi al sito apple developer (link) per scaricarlo e ricevere gli aggiornamenti. La Apple richiede una fee (pagamento) per poter sviluppare (o meglio pubblicare nel suo App Store o stestare su device) software per iOS, ma sono due cose ben diverse, la registrazione per il solo download di XCode e per entrare a far parte della community di sviluppatori è assolutamente gratuita.
Il download richiede un pò di tempo, vista la pesantezza del pacchetto (circa 4 GB) ma l’installazione e l’avvio dell’applicazione è abbastanza rapido.
Come realizzare un programma con xcode
Una volta installato XCode avviamolo, e dalla schermata che ci appare clicchiamo su “create new xcode project”. Si aprirà una seconda schermata, nella quale sono elencati alcuni template per le applicazioni di uso più comune, per il nostro scopo, selezioniamo “Command Line Tool” sotto la voce “Macos X – Application”.
Selezioniamo anche dal menù “Type” la voce “C”, visto che stiamo programmando in questo linugaggio e non abbiamo, per il momento, bisogno di altro.

Clicchiamo su “choose” e selezioniamo la cartella ed il nome del progetto.
Una volta terminato il wizard XCode si presenta con la sua schermata principale e come nel caso di anjuta abbiamo sulla sinistra i file che compongono il progetto e sulla destra l’editor.
Clicchiamo (una volta) sul file main.c all’interno della cartella Source e vediamo nell’editor il solito programma di esempio:

Per eseguire il programma basta cliccare sul pulsante “build and run” posto al centro della finestra. Cliccandoci, però, non vedremo alcun risultato se non un “Debuggin of “primoprogramma” ended normally”. Questo perchè la schermata di output del programma non è attualmente visibile. Per visualizzarla io utilizzo lo shortcut “shift+cmd+r” ma in alternativa basta cliccare sulla voce “console” del menù “run”.

Come possiamo vedere nella finestra console viene visualizata la stringa “Hello world!”
Prossimamente
Nella prossima lezione inizieremo a parlare della sintassi del linguaggio C, vedremo come è strutturato e quali sono i blocchi principali.
Letture consigliate:
Il linguaggio C. Principi di programmazione e manuale di riferimento (Accademica)
Brian W. Kernighan – Dennis M. Ritchie
Editore: Pearson | Lingua: Italiano | Brossura: 313 pagine
Prezzo Listino: EUR 27,00
Prezzo Promozione: EUR 22,95 con Spedizione gratuita
C. Corso completo di programmazione
Paul J. Deitel – Harvey M. Deitel
Editore: Apogeo | Lingua: Italiano | Brossura: 640 pagine
Prezzo Listino: EUR 39,00
Prezzo Promozione: EUR 33,15 con Spedizione gratuita

57 Responses to “4. Gli strumenti del programmatore”
22 Settembre 2011
IgnazioStudia pure dove ti capita, anche se dovessi imparare a programmare su un commodore64 non sarebbe mai lavoro “sprecato”.
20 Maggio 2012
MicheleCiao ragazzi, innanzitutto vi faccio i miei complimenti per l’ottimo lavoro che state facendo ho ritenuto sempre fuori dalla mia portata la programmazione, ma iniziando a leggere le vostre pagine mi sono ricreduto e mi è venuta voglia di provarci.
Ho installato MinGW e nonostante abbia inserito la modifica alla path continua a non eseguire il comando gcc tramite cmd. Come mai?
23 Giugno 2012
Matteo@Michele ciao anche io ho avuto il tuo stesso problema. Devi stare attente perche nel momento in cui copi c:\mingw\bin alla fine della stringa di testo della variabile path devi mettere un punto e virgola (;) sia all’inizio che alla fine ovvero ;c:\mingw\bin;
26 Giugno 2012
MicheleEsatto! anche a me non andava, poi ho messo il (;) davanti e dietro adesso va! grandi!
17 Ottobre 2012
matteoSalvate il file in una cartella a vostra scelta con il nome di “primoprogramma.c”.
Adesso se state utilizzando windows aprite il prompt dei comandi (start -> cmd -> INVIO) oppure un terminale se state utilizzando linux o mac e spostatevi nella cartella in cui avete salvato il file (Il comando da dare è “CD nomecartella” )
faccio questo passaggio ma quando vado a digitare il comando “CD nome cartella” (nel mio caso l ho chiamata a), mi dice “impossibile trovare il percorso specificato.”
aiutoo grazie
6 Settembre 2014
ErminioHo installato MinGW e nonostante abbia inserito la modifica alla path continua a non eseguire il comando gcc tramite cmd. Come mai? Ecco quanto indicato nella mia riga
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static\;C:\mingw\bin;
18 Gennaio 2015
elenanon mi funziona nonostante avessi fatto tutte le procedure che hai scritto sopra
questa è la mia variabile:
c:\Program Files (x86)\AMD APP\bin\x86_64;c:\Program Files (x86)\AMD APP\bin\x86;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\;C:\mingw\bin;