Resources
C tutorials and references
- Declaring Variables in C
- C Variable Types
- Printf Formatting
- C for Java Programmers (contains links to C tutorials and C reference books)
- C for Java Programmers slides (broken link on the previous page)
- A Tutorial on Pointers and Arrays in C by Ted Jensen
- Top tips to help the Java programmer code in C
IA-32 (x86) assembly language
- PC Assembly Language, by Paul A. Carter, July 2006. Note: this guide uses Intel style assembly syntax in its descriptions. We are using AT&T style syntax for our assembly code. See page 166 in CS:APP2e for the difference.
- Harvard-local copy of PC Assembly Language
- Brennan’s Guide to Inline Assembly (linking assembly code into a C program)
- Other references, including the current Intel manuals
Textbook
- Student resources (includes Unix FAQ, C tutorials, example code, GDB tutorials, and more.)
GDB debugger
- GDB Quick Start Guide
- Guide to Faster, Less Frustrating Debugging by Norman Matloff
- CS61 debugging tips and tricks
- GDB User Manual
- GDB usage primer video
- Useful GDB Commands
- Another GDB cheat sheet
- Insight a GDB Graphical User Interface
Working in the Shell
- 1 -
- 2 - Navigation and Directories
- 3 - Working with Files
- 4 -
- 5 -
Git
- CS61 Git notes, with links to more resources
- CS61 Diff notes
- Git Introduction Video (download and then watch)
Miscellaneous
- Machine programming
- The Story of Mel
- Programming from the Ground Up. Introduction to programming via assembly.
- Linking and loading
- Dynamic memory management
- A Memory Allocator by Doug Lea
- Memory hierarchy and memory technology
- Optimization
- About GCC printf optimization by Peter Seiderer
- Will It Optimize? from ridiculousfish
- Concurrency and synchronization
- The Little Book of Semaphores by Allen B. Downey