The C Programming Language
This page is a collection of links related to the C programming language.
Brian W. Kernighan
GNU C Compiler: The most famous and
widely used at present. Primarly for Unix and Unix-like platforms.
DJGPP: Port of the GNU development utilties to
the Intel 32-bit platforms.
Cygwin: This is an environment and a port of most GNU
utilties including the GCC set to the Windows platform.
MinGW: Minimalist GNU for Windows.
Includes support for the GNU Compiler Collection (GCC).
Turbo C: Remember
Turbo C from Borland? Now it is available as a free download. Though it's a little out of
date, it still is extremely usable.
Builder: The compiler and command line tools are available as a free download.
OpenWatcom Compilers: The original Watcom
compilers are now available as open source software.
Digital Mars C/C++
Compiler: Offshoot of the Zortech/Symantec C/C++ Compilers (probably it is the Zortech
compiler re-incarnated). Touted as drop in replacements for the Symantec C/C++
lcc: Portable compiler for ANSI C.
lcc-win32: Free for non-commerical
use. Windows support with IDE, etc.
Pelles C: Based on lcc. With IDE, etc
for Windows platform.
Ch: This is actually an interpreter.
Standard edition is free.
EiC: Extensible Interactive C. Another
Dinkum C Library Reference
The International C Standardization Working
Group: Links to the actual standards and other documents
Steve Summit's C FAQ: Online
version. There is also a book.
Whats new in C9X:
Some information on new things added to the C language by ISO C99 (By Thomas Wolf). The official list is here.
C Library Reference
A tutorial on C pointers
C Programming Language, Brian W. Kernighan & Dennis Ritchie, Prentice-Hall Publishing: The original book that introduced the C programming language. Popularly known as K&R.
The Practice of Programming, Brian W. Kernighan & Rob Pike, Addison-Wesley, Inc.
The Elements of Programming Style, Brian W. Kernighan & PJ Plauger
The Standard C Library, PJ Plauger
Standard C: A Reference, PJ Plauger & Jim Brodie
The Practice of Programming, Brian W. Kernighan & Rob Pike
C: A Reference Manual, Samuel P. Harbison & Guy L. Steele
The C Book (Online Edition)
development of the C programming language
Spencer's Ten Commandments for C Programmers
Rob Pike on C Style
Writing bug-free C code
and Analyzing C and C++ Programs
Programming, Tools & Resources
Cyclone is a safe dialect of C
being developed at AT&T Research in collaboration with Cornell University
Vault is a safe version of the C
language being developed at Microsoft Research
Information about a whole bunch of code comprehension
tools is here
cinclude2dot (old, new): Generates a graph of the #include
relationships within a C source tree using graphviz
Doxygen: Generate documentation from source code
Splint is a sophisticated lint program that also
checks for security vulnerabilities in C code
GCC Translation Framework (including
ANSI & GNU C Parser and Lexer)
Calls with GraphViz
Run-time function call tree with gcc
CIL - Infrastructure for C Program Analysis
and Transformation : A tool to translate normally used C (including GNU C) into a
simple subset that is easier to use in translation and program analysis.
The LLVM Compile Infrastructure : Low-Level Virtual
Machine is a sort of intermediate virtual machine for which compilers can generate code.
This supposedly provides better scope for optimization techniques (by analysis of the LLVM
generated code). This infrastructure has a GCC based C & C++ front-end, their own
linker that does the optimization and back-ends for various target platforms.
Frama-C : Framework for Modular Analysis of C : Suite of tools that builds on CIL mentioned above for use in static analysis of C based programs. Binaries for Linux, Windows and OS X.
Yacfe : From the announcement -- "Yet Another C/C++ Front-End, which is an OCaml API to write style-preserving source-to-source transformations such as refactorings on C or C++ source code"
LibFIRM : LibFIRM is a library that provides an intermediate representation (FIRM) that can be used to perform optimizations by compilers. Programs are represented as a graph. cparser is a parser, lexer and semantic analyzer for the ISO C99 language based on LibFIRM.
pycparser : pycparser is a parser for the C language written in Python. pycparser is by Eli Bendersky.
A wonderful collection of links and information
The International Obfuscated C Code Contest
J. Blustein's C Programming
Bit Twiddling Hacks -
A comprehensive collection of code-snippets in C with explanations to help speed up
C Optimization Tips -
Optimization tips that can be used when coding in C
Steve Friedl's famous guide to reading C type declarations