Inside C (italian Edition)

Inside C (italian Edition)
by Giuseppe Di Cataldo / / / Kindle


Read Online 867.3 KB Download


Questo libro ha la stessa impostazione pratica del precedente “Stack Frames: A look from inside” in cui il lettore puo trovare utili informazioni su molti dei temi trattati qui. Concentrandosi sugli argomenti principali, esamina dettagli di implementazione che spesso sfuggono, o non interessano, agli studenti nel loro primo approccio col linguaggio. Il libro e dunque indirizzato principalmente a tutti coloro i quali, avendo gia imparato il C, desiderano approfondirne la conoscenza osservando come il codice sorgente viene implementato dai compilatori. Si tratta di esaminare il linguaggio da una differente angolazione in altre parole: uno sguardo verso il basso. E un'occasione per esplorare un mondo tanto misterioso quanto affascinante, la cui rilevanza e spesso sottovalutata. L'Autore e sempre stato un convinto sostenitore della validita dell'insegnamento del linguaggio assembly come utile background culturale di ogni buon programmatore C. Il C e l'assembly sono cosi simili che neppure per un principiante e uno sforzo eccessivo confrontarne i codici. Sotto il C infatti c'e un solo linguaggio: l'assembly di una specifica CPU. La fatica di guardare il codice assembly di un programma e confrontarlo col sorgente C e ampiamente ripagata dalla conoscenza di come il computer lavora e dalla possibilita di ottimizzare quelle porzioni di codice responsabili di rallentare l'eseguibile, assumendo di aver gia scelto l'algoritmo piu efficace e le opzioni di ottimizzazione piu adatte. Ma non si puo scendere nel dettaglio senza dover rinunciare a qualcosa dato che esistono piu architetture, linguaggi assembly e compilatori, e necessario fare delle scelte. L'ambiente di lavoro sara un sistema operativo GNU installato su un personal computer con processore x86 a 64 bit. Gli strumenti di lavoro saranno i compilatori gcc, clang e il debugger gdb. Il lettore puo anche usare un compilatore online, per esempio rextester (http://rextester.com/) che permette di scrivere, compilare ed eseguire programmi usando piu compilatori e linguaggi (fra cui C ed assembly). Esistono anche siti (fra cui https://godbolt.org/) che permettono di generare codice assemby e visualizzarlo con sintassi AT&T oppure Intel. Un'altra differenza rispetto ai tradizionali libri di C e il carattere discorsivo del testo: pochi capitoli che coprono i temi piu importanti del linguaggio e, spesso, lunghi paragrafi poveri di dettagliate definizioni ma ricchi di esempi e prove che il lettore e invitato a ripetere sul proprio sistema operativo, confrontandone i risultati. Non mancano domande ed esercizi utili per verificare la propria preparazione. Se il lettore non ha mai studiato C ed assembly non si scoraggi: tutte le istruzioni sono sufficientemente commentate e accompagnate da immagini e spiegazioni dettagliate per affrontare con profitto la lettura di questo libro. L'unico requisito necessario e il desiderio di apprendere.

views: 837