Ti ringrazio, ma questi sono eccessivamente semplici, per ultrapivelli.
:) In effetti, sono stato poco esauriente nello spiegare il mio livello
di conoscenze e abilit� (comunque basso), scusami. Insieme al K&R ho
consultato anche il D&D facendo quasi tutti gli esercizi riportati, e
sono centinaia. Il fatto � che quegli esercizi sono, appunto, solo
esercizi, e i sorgenti che ho scritto non hanno nessun'altra utilit� se
non quella di farmi apprendere nella pratica ci� che � ho appreso nella
teoria. Ora, per�, quello che voglio imparare � scrivere programmi, per
cos� dire, "veri", cio� del codice che abbia una qualche utilit� come i
programmi che usiamo tutti noi ogni giorno, quindi programmi che, p.e.,
"dialoghino" in qualche modo con l'hardware, o software di rete, ecc. Ho
provato a leggere il codice di alcuni software, ma quelli che ho trovato
sono troppo difficili. Ho provato a capire qualcosa del sorgete di
Linux, ma...boh!
Partire col sorgente di Linux mi sembra eccessivo. Ma tanto non sul
fronte C quanto perché presupporrebbe che tu abbia chiara la struttura
di un S.O. in generale e di Linux in particolare.
Di fatto anche per applicazioni di rete o grafiche avresti il problema
di dover recuperare un po' di abc sui protocolli di rete o interfacce
utenti etc. per poter capire cosa si fa a livello di codice.
A parte queste osservazioni, io partirei da un qualsiasi progetto
Open Source (p.es. cerca su sourceforge.net ) che risponda a due
caratteristiche di case:
1. essere semplice e contenuto come codice;
2. avere un qualche interesse per te.
Pian piano ti puoi sempre spostare a software sempre più complesso
per modificarlo o anche solo per vedere come funziona.
Giorgio
>Ti ringrazio, ma questi sono eccessivamente semplici, per ultrapivelli.
Il fatto è che la tua richiesta è troppo generica e non è facile
consigliarti. Magari puoi sperimentare per conto tuo, ponendoti degli
obiettivi e cercando di raggiungerli. Queste sfide con sé stessi a
volte sono molto stimolanti :-)
>esercizi, e i sorgenti che ho scritto non hanno nessun'altra utilità se
>non quella di farmi apprendere nella pratica ciò che è ho appreso nella
>teoria.
Un buon esercizio è provare a scrivere un programma di compressione.
Ti consiglio l'algoritmo di Huffman. Non è complicato e ti può aiutare
ad approfondire molti argomenti.
>Ho provato a capire qualcosa del sorgete di
>Linux, ma...boh!
Be', tu passi da un estremo all'altro :-)
Ti ritrovi programmi semplici di cui puoi studiarti il codice e
provare a riprodurre.
Introducono utilizzi pratici sia di librerie standard sia di altre
librerie.
E se trovi dei bachi li puoi aggiustare.
Ho un'altra domanda: approssimativamente che grado di difficoltà ha la
scrittura di un compilatore? Dopo aver scritto quello di compressione,
potrò provarci o sarà ancora troppo presto?
> Ho un'altra domanda: approssimativamente che grado di difficoltà ha la
> scrittura di un compilatore?
Essere ambiziosi non è un difetto, ma rischi di bruciare le tappe :-)
La scrittura di un compilatore è un'operazione molto complessa e richiede
un mare di conoscenze che non riguardano strettamente la programmazione in
un determinato linguaggio. Esistono dei libri che ti spiegano le tecniche
adottabili nella ideazione di un software del genere. Io ti consiglio in
particolare questi due:
http://www.amazon.com/Modern-Compiler-Design-D-Grune/dp/0471976970
Ti aiuterà anche frequentare il gruppo americano comp.compilers
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it
È abbastanza complicato. Qui puoi trovarne una parte - il solo
preprocessore - per fartene una idea.
http://giovanni.homelinux.net//development/index.html
Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 < http://giovanni.homelinux.net/ >
Mi serviva appunto sapere quanto complicato fosse, perché non vorrei
imbarcarmi in un lavoro al di là delle mie capacità. Ci ripenserò fra un
anno, intanto metto fra i preferiti i link che mi avete dato. Grazie mille!
Se vuoi guardare a qualche sorgente C moderno di progetti attuali e
magari anche contribuire direttamente, fai un salto su:
www.suckless.org
E' una comunita' di cui faccio parte in cui i progetti sono utili (il
progetto principale del gruppo e' un window manager per X window), ma
di dimensioni contenute (dovuto al fatto che ci lavoriamo nei ritagli
di tempo), ma con un occhio all'essere scritti bene (anche se su
alcune cose, per esempio l'uso di size_t, possiamo anche discordare)