Un corso di C - Introduzione
a cura del Ph.D. A. Bianchi
"Ecco un
nuovo e noiosissimo corso di C"...
Ebbene NO.
Forse non ne
sarei nemmeno capace. E poi, perche’ riscrivere per l’ennesima volta con
qualche differenza nell’ impostazione e nel lessico quanto si puo’ gia
trovare il qualsiasi biblioteca o in internet ?
Per esperienza,
lo studio di un (nuovo) linguaggio di programmazione richiede essenzialmente
una sola cosa: dover risolvere un
problema pratico. E magari un problema pratico che mal si adatta
ai linguaggi gia' di
nostra conoscenza.
Perchè è
chiaro a chi si già dedicato a questa esperienza, e lo sanno bene molti
studenti, che lo studio di un linguaggio fine a se stesso difficilmente
porta a dei risultati se non gli si associa un obiettivo reale.
Se ci
ricordiamo del detto cinese:
"Se ascolto dimentico; se vedo ricordo; se faccio capisco"
non possiamo che trovarlo
del tutto vero se applicato all' apprendimento di una astrazione come un
linguaggio di programmazione.
Uno studio puramente teorico potrà portare al massimo alla conoscenza
mnemonica delle regole e, forse, alla comprensione della logica che sta dietro
alla struttura del linguaggio. E ci si potrà anche trovare in sintonia con
chi l' ha creato, oppure no.
Però, da questo al passare a rendere operativo il linguaggio, ovvero a
scrivere del software, o firmware, che svolga realmente un compito
determinato, c'è un discreto abisso.
Ancora più ampio quando non si tratta di agire su collezioni di dati
virtuali, ma sul governo funzioni hardware, come nel caso degli embedded (e
dell'automazione e del controllo di processo in generale).
Esistono nella
bibliografia e nella rete ottimi testi e corsi completi
in grado di sviscerare tutti gli aspetti dei linguaggi prescelti, ma
senza una reale necessita' di programmazione passano presto nel dimenticatoio.
"Se faccio capisco...".
Ecco perche'
vorrei proporre non lo studio del "C" con cui poi realizzare
un' applicazione, ma, inversamente, realizzare un' applicazione utilizzando
quella parte di "C" che puo' servire allo scopo.
E da questa esperienza trarre l' insegnamento per poter espandersi in altre
applicazioni.
Il C non è
sicuramente un linguaggio "semplice", nè "user friendly",
ma, una volta entrati nei suoi meccanismi,ara' facile trovare in rete o in
libreria tutti i testi ed i corsi completi per ampliare ed affinare le proprie
conoscenze e realizzare programmi sempre piu'
complessi e performanti.
Chi si vuole
cimentare nello studio del "C"
troverà sui vari motori con una
semplice ricerca di che soddisfare la sua curiosita'.
Qui noi cercheremo di arrivare ad una conoscenza operativa del C, che,
attraverso il successo di risultati pratici, stimolerà ulteriori passi
futuri.
L'
APPLICAZIONE
Come detto,
l'applicazione che deve scatenare il desiderio o l'esigenza di imparare un
nuovo linguaggio deve generalmente essere tale da ottenere dei benefici dall'uso di questo nuovo linguaggio.
Certo che se
il fine ultimo dovesse essere quello di far lampeggiare un LED, l'uso di un
linguaggio stutturato di media complessita' sarebbe a dir poco inopportuno.
Poche righe di Assembly sarebbero meglio adeguate.
Non che ci sia
nulla di disonorevole nel far lampeggiare un LED con un programma in C, anzi
lo utilizzeremo ampiamente nella nostra applicazione, ma cio' a senso solo per
motivi didattici o in quanto tale funzione e' inserita in un contesto di
programmazione ben piu' ampio.
Nè, per
contro, sarebbe insormontabile l' affrontare un intenso scambio dati, magari
su LAN o USB in Assembly; sarebbe sicuramente una scelta che origina un
firmware dalle ottime prestazioni, ma si tratterebbe di un lavoro molto più
affrontato attraverso un linguaggio dotato di mezzi e struttura poco adeguati
adeguati.
Dunque,
attraverso un linguaggio a livello più elevato dell' Assembly, affrontiamo
applicazioni più complesse che non il semplice lampeggiare del LED; e, con un
esempio, è evidente a tutti che pur potendo spostare una montagna di terra
con badile e carriola, l' uso di una ruspa rende il lavoro ben diverso.
Vediamo dunque di imparare a guidare la nostra
"ruspa" e metterla al lavoro.
|