Percorso C/C++
Franco Gozzi  f.gozzi@leonet.it


Tempo fa qualcuno mi fece notare che un programmatore non è tale se non ha programmato in C. Se questo è vero o meno è assai difficile dimostrarlo anche perché credo siano in pochi, nella folta schiera dei programmatori, coloro che non si siano dovuti districare nelle maglie di questo linguaggio.

Il C, fu sviluppato secondo un concetto di linguaggio portabile e standardizzato. In origine scritto per Unix venne ben presto trasportato su altre piattaforme senza o con minime modifiche.

Il suo essere a "basso livello" lo ha reso così importante da non poterne fare a meno. Infatti pur mantenendo il rigore della programmazione strutturata la sua forza è legata alla possibilità di mettere le mani su questioni molto delicate. In fondo molti sistemi operativi ed applicativi di uso comune sono stati e sono ancora generati con questo linguaggio.

Anche chi non ha utilizzato questo linguaggio per sviluppare le proprie applicazioni spesso è dovuto ricorrere al C per svolgere compiti da chirurgo a stretto contatto con la macchina e con il sistema Operativo. Al di là delle sue evoluzioni nel C++, il C resta un linguaggio importantissimo ed internet gli sta regalando una nuova giovinezza. Basti pensare all’uso nella costruzione di CGI per il web, dove l’onere dell’interfaccia grafica può essere demandato all’html. La rete però ha anche il merito di mantenere vivo l’interesse tra gli sviluppatori offrendo loro un numero di risorse particolarmente interessanti. Una volta tanto però concedetemi di prestare maggiore attenzione a coloro che per la prima volta si avvicinano al C affinchè il loro entusiasmo non naufraghi alle prime difficoltà.

Per chi vuole imparare il linguaggio niente è meglio di un tutorial; in questo caso abbiamo l’imbarazzo della scelta. Tanto per iniziare vi consiglio una guida per principianti (The Ground Cero Guide to C) del danese Henrik Aasted Sorensen all’url http://home1.inet.tele.dk/seth/c-tut.html . Altra guida interessante è quella curata da Marshall Brain che potete reperire all’indirizzo http://devcentral.iftech.com/learning/tutorials/c-cpp/c/ . La lista potrebbe durare per ore ma io chiudo segnalandovi l’url http://www.cit.ac.nz/smac/cprogram facente parte di una risorsa che avevo già segnalato parlando di Pascal e continuando con la guida di Dave Marshall ( http://www.cm.cf.ac.uk/Dave/C/CC.html ) .

Una volta apprese le basi del linguaggio, o meglio ancora durante l’apprendimento, vi sarà venuta la voglia di scrivere del codice e di testarlo. Reperire un compilatore C potrebbe non essere banale; se siete utenti Linux, nessun problema, ne sapete più del sottoscritto. Qualora tutto ciò che è testuale e non grafico vi provocasse i crampi allo stomaco e Windows con le sue finestre fosse per voi irrinunciabile allora vi propongo lcc-win 32 un compilatore free, e dico free, che è più di un compilatore: si tratta di un vero e proprio ambiente di sviluppo. Ve lo potete scaricare, documentazione inclusa, all’indirizzo http://www.cs.virginia.edu./~lcc-win32/.

Ancora cercando dei compilatori magari in ambiente Dos o Amiga non rinunciate a visitare il sito http://www.netlink.co.uk/users/zion/comp/prog2.htm .

Se il materiale fin qui recensito non vi avesse soddisfatto magari perché l’ottimo per voi è seguire un corso allora potreste tentare di farlo virtualmente attraverso il materiale, gli esempi e gli esercizi di due corsi veri e propri, cioè: "Introduction to C programming" del Worchester Polytechnic Institute all’indirizzo http://www.cs.wpi.edu/~cs1005/1997c/ e l’ottimo itinerario proposto da Steve Holmes ( http://www.strath.ac.uk/cc/Courses/Ccourse/Ccourse.html ).

Adesso probabilmente sarete così "scafati" da potervi permettere di guardare lontano. Ciò che vi occorre è un supporto più mirato ed operativamente più appropriato. Bene, ho quello che fa per voi: iniziamo con una comunità di programmatori C alla quale iscriversi e con la quale crescere; la trovate a http://www.accu.org dove accu sta per Association of C and C++ Users.

Il codice non ha segreti negli esempi di Mitch Edelman all’indirizzo http://www.gl.unbc.edu/~pjacks1/c/ . Sicuramente se non siete dei veri professionisti i puntatori del C vi rimarranno molto indigesti. Vi propongo un digestivo niente male purché visitiate il sito http://pweb.netcom/~tjensen/ptr/pointers.htm .

Un buon programmatore conosce l’importanza di avere a portata di mano una guida di riferimento in maniera da non sprecare tempo nel tentativo di ricordarsi la sintassi o la semantica di qualche comando. Una buona guida, insieme ad ottimi link e sorgenti per gli esempi utilizzati la trovate a http://www.gator.net/~garyg/c/ref.htm .

Come al solito la chiusura la dedico ai newsgroup tematici. Credo che comp.lang.c sia più di un newsgroup, si tratta di una vera istituzione, una colonna vera e propria della rete. Le Faq di questo gruppo le trovate all’Url http://www.eskimo.com/~scs/C-faq/top.html oppure http://www.cis.ohio.state.edu/hypertext/faq/usenet/C-faq/abridged/faq.html. Segnalo anche il gruppo corrispondente made in Italy: it.comp.lang.c .

Buon lavoro!