← Back to Home

Recommended Books on the C Programming Language

CS 0449: Introduction to Systems Software — Extra Resources


The C Programming Language
Brian Kernighan & Dennis Ritchie
In this course, we will heavily write, use, and test programs using the C programming language. C is a particularly useful tool for us as it abstracts the unnecessary details with its robust syntax (compared to assembly or machine language) while maintaining the low-level access to memory (through the use of pointers). As such, it is very important that you become proficient in this language.

While we will spend the first few weeks of the course going over C’s syntax (and the language’s quirks), it maybe useful to have another resource handy (in case you get stuck while programming). Below are some free (and some not free) resources that may prove useful as you progress through this course.

The C Programming Language

The C Programming Language (sometimes termed K&R, after its authors’ initials) is a computer programming book written by Brian Kernighan and Dennis RitchieDennis Ritchie was the original creator of the C programming language as well as a co-designer of the Unix operating system with which development of the language was closely intertwined . The book was central to the development and popularization of C and is still widely read and used today. Because the book was co-authored by the original language designer, and because the first edition of the book served for many years as the de facto standard for the language, the book is regarded as an authoritative reference on CSource: Wikipedia .

Excellent Free Book on C Programming:

C Notes for Professionals
The C Notes for Professionals book is compiled from Stack Overflow Documentation by GoalKicker.com

Excellent First Textbooks on C:

Computer Science: A Structured Programming Approach in C
Behrouz Forouzan and Richard Gilberg (Cengage Learning)
ISBN-13: 978-0-534-49132-1
C Programming: A Modern Approach
K.N. King (Manning Press)
ISBN-13: 978-0-393-97950-3

Finding Other Resources

There are a vast number of great resources available both on-line and on print. However, because C is such an old language, there may be some resources that are outdated or contain inaccurate information.

For this course, we will focus on the ANSI/ISO-C99 Standard of the C programming language. Although this is not the most up-to-date version of C, it is (still) one of the most popular versions and is sufficient for our purposes.Many legacy systems still rely upon C99, and many companies still use it as their primary C version. You should try to make sure that the materials you are referencing are based on this standard.