Materiale didattico
Gli argomenti svolti a lezione sono trattati in testi e dispense didattiche che verranno indicati mano mano durante il corso in questa pagina.
Slide e dispense didattiche
Libri di testo e manuali
- [T1] Brian W. Kernighan, Dennis M. Ritchie: Il Linguaggio C, Pearson Education Italia, ISBN 88-7192-200-X, seconda edizione [sito Web∞]
- [T2] Randal E. Bryant e David R. O'Hallaron: Computer Systems: A Programmer's Perspective, Prentice Hall, 2003, ISBN 0-13-034074-X [sito Web∞]
- [T3] ISO/IEC 9899:1999 Stardard Rationale - The C Programming Language∞
- [T4] Mike Banahan, Declan Brady and Mark Doran: The C Book, seconda edizione, originariamente pubblicato da Addison Wesley, ora disponibile gratuitamente online∞.
- [T5] C/C++ Language Reference∞ - IBM
- [T6] Wen-Mei Hwu, David Kirk: "Programming Massively Parallel Processors: A Hands-on Approach", Morgan Kaufmann [sito Web∞]
- [T7] Jon Louis Bentley: Writing Efficient Programs, Prentice Hall, 1982, ISBN 978-0139702440 [sito Web∞]
- [T8] Ryoji Tsuchiyama, Takashi Nakamura, Takuro Iizuka, Akihiro Asahara, Jeongdo Son, Satoshi Miki. The OpenCL Programming Book. Fixstars, 2012 [Versione OpenCL 1.0 disponibile gratuitamente online∞]
- [T9] Aaftab Munshi, Benedict R. Gaster, Timothy G. Mattson, James Fung, Dan Ginsburg. OpenCL Programming Guide. Addison-Wesley Professional, ISBN 978-0-321-74964-2 (print), 978-0-13-248800-6 (Web) [Sito Web∞]
Articoli scientifici
- [A1] Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles: Dynamic Storage Allocation: A Survey and Critical Review. In Proceedings of the 2nd International Workshop on Memory Management (IWMM 95), Kinross, Scotland, LNCS 986, 1995 [scarica pdf, 740 KB∞]
- [A2] Daniele Cono D'Elia, Camil Demetrescu, Irene Finocchi: Mining Hot Calling Contexts in Small Space. In Proceedings of the 32nd ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI 2011), San Jose, California, June 2011 [scarica pdf, 283 KB∞]
- [A3] Emilio Coppa, Camil Demetrescu, Irene Finocchi: Input-Sensitive Profiling. In Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI 2012), Beijing, China, June 2012 [scarica pdf, 462 KB∞]
Seminari tenuti durante il corso A.A. 2011-2012
Pagine utili
- [P1] Tabella precedenze operatori C∞
- [P2] Interpretare espressioni che definiscono tipi in C∞
- [P3] Errori comuni in C∞
- [P4] Operatori bit a bit in C∞
- [P5] Liste unrolled∞
- [P6] Tool di profiling gprof∞
- [P7] Opzioni riga di comando gcc∞
- [P8] Standard POSIX (IEEE Std 1003.1, 2004 Edition)∞, include tutte le librerie standard C: si veda la sezione System Interfaces volume (XSH).
- [P9] Tutorial su makefile∞
- [P10] Documentazione comando make (IEEE Std 1003.1, 2004 Edition)∞
- [P11] Tutorial sui tool GNU autoconf, automake e autoheader∞
- [P12] Differenze fra C e Java∞
- [P13] The C Preprocessor - GNU manual∞
- [P14] System V Application Binary Interface (AMD64)∞
- [P15] IntelŪ 64 and IA-32 Architectures Software Developer's Manual∞
- [P16] Articolo IBM developerWorks su data alignment∞
- [P17] Doug Lea: A Memory Allocator. unix/Mail December, 1996. Hanser Verlag [pagina web∞]
- [P18] Versione 1.161 dell'allocatore malloc.c∞ fornito dal sistema operativo FreeBSD∞
- [P19] Jonathan Bartlett: Inside memory management (come rimpiazzare malloc con un proprio allocatore in Linux) [pagina web∞]
- [P20] Valgrind∞ (profiler e debugger di memoria per Linux e MacOS X)
- [P21] aprof∞ (profiler basasto su Valgrind∞ per identificare inefficienze asintotiche per Linux e MacOS X)
- [P22] Documentazione libreria standard C, con esempi di uso∞
- [P23] istruzioni x86 pių comuni, 32 bit (sintassi AT&T, pdf)∞
- [P24] intero set istruzioni x86, 32 bit (sintassi Intel, html)∞
- [P25] intero set istruzioni x84-64 (sintassi Intel, html)∞
- [P26] Guida Intel agli intrinsics per programmare le estensioni SIMD∞
- [P27] Documentazione Microsoft MSDN all'uso degli intrinsics per MMX, SSE e SSE2∞
- [P28] Documentazione ufficiale OpenCL
- [P29] Cliff Woolley. Introduction to OpenCL. NVIDIA Tutorial [pdf file 2.5 MB∞]
- [P30] Erik Smistad. Getting started with OpenCL and GPU Computing [Pagina Web∞]
Letture consigliate e materiale di approfondimento
- [C1] Donald Knuth: The Art of Computer Programming, Volumes 1-3, Addison-Wesley, Inc. [sito web∞]
- [C2] Jon Bentley: Programming pearls, Addison-Wesley, Inc., 2000. ISBN 0-201-65788-0 [sito web∞]
Testi di esame appelli passati
[
A.A. 2009-2010 |
A.A. 2010-2011 |
A.A. 2011-2012 ]