Resources
C tutorials and references
- C for Java Programmers (contains links to C tutorials and C reference books)
- C for Java Programmers by J. Maassen
- 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
- Guide to Faster, Less Frustrating Debugging by Norman Matloff
- GDB User Manual
- GDB usage primer video
- Useful GDB commands
- Another GDB cheat sheet
- Insight a GDB Graphical User Interface
Git
- Git tutorial videos!
- Introduction Slideshow to Version Control with git by SEAS: explains version control and specifically git, and goes over most git commands
- Quick Intro to git by SEAS: basic commands for git
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