Jump to: navigation, search

Introduction

This is a listing of tools that can parse C code to generate output in a useful form - likely a parse tree.

It was seeded from the post <06-04-103@comp.compilers> to comp.lang.c by Rod Pemberton dated April 16 2006; the seeding had his consent and was at his request - see <dv7erp$6sl3$1@news3.infoave.net>. It was imported without checking any links, and Rod Pemberton wrote in his message that he was already aware that some of the links might not be functional. [this explanation can be removed if anyone takes on the checking task and updates the page accordingly, or if the listing expands to the point that the seeding becomes irrelevant]

Listing

http://manju.cs.berkeley.edu/cil/ CIL - C Intermediate Language - C to C transformation
http://www.decus.org/libcatalog/description_html/v00281.html ftp://ftp.encompassus.org/lib/ WCC - A C Subset Compiler (DECUS ftp links now appear to be dead...sorry)
http://www.geonius.com/software/tools/npath.html npath - C Source Complexity Measures
http://check.sourceforge.net/ Check: A unit test framework for C
http://ctool.sourceforge.net/ CTool Library (call-graph generator, source transformations)
http://www.ecst.csuchico.edu/~sameerg/compproj.html

http://www.ecst.csuchico.edu/~hilzer/csci250/proj/

Chico State Mini-C Compiler (CSMCC) is a student training load-and-go compiler (incomplete, teaching tool)
http://www.lsv.ens-cachan.fr/~goubault/Csur/csur.html CSur Le projet Csur (in French). An analyzer of code C to detect common program execution errors
http://ftp.sunet.se/pub/usenet/ftp.uu.net/comp.sources.unix/ CXREF C language cross referencing program in volume1 of comp.sources.unix
http://www.die-schoens.de/prg/ JSCPP - a C preprocessor + parser with special modes
http://cproto.sourceforge.net/ Cproto automatically generates C function prototypes
http://www.computing.surrey.ac.uk/research/dsrg/fog/ Edward Willink's C++ grammars (some of the links have an extra text '/v' in them, just delete)
http://www.sigala.it/sandro/download.php ISO C/C++ grammars version 1.2 (c-c++-grammars-1.2.tar.gz)
http://www.mazumdar.demon.co.uk/c_parser.html A C99 Parser, a recursive decent parser
http://ctags.sourceforge.net/ Ctags generates an index (or tag) file of language objects
http://ftp.sunet.se/pub/usenet/ftp.uu.net/comp.sources.unix/ Cdecl English<->C translator for C declarations; cdecl in volume6 of comp.sources.unix;

cdecl2 in volume14 of comp.sources.unix

http://manju.cs.berkeley.edu/ccured/ CCURED memory safe C transformations (for CIL)
http://www.drugphish.ch/~jonny/cca.html C Code Checker (for CIL)
http://www.striker.ottawa.on.ca/~aland/pscan/ PScan Scan C files for format string overflows
http://www.cs.umd.edu/~jfoster/cqual/ CQUAL C checking through extended type qualifiers
http://smatch.sourceforge.net/ Smatch - Source Matcher, C source checker for Linux Kernel
http://www.splint.org SPLint Secure Programming Lint error detection
http://www.cs.berkeley.edu/~daw/boon/ BOON Buffer Overrun detectiON
http://pedantic.sourceforge.net/ CZECH, project pedantic error detection
http://www.dwheeler.com/flawfinder/ Flawfinder for C (in Python)
http://www.astree.ens.fr/ ASTR�E determines absence of runtime errors (in OCAML).

"In Nov. 2003, ASTR�E was able to prove completely automatically the absence of any RTE in the primary flight control software of the Airbus A340 fly-by-wire system, a program of 132,000 lines of C" [Rod Pemberton writes: ASTR�E appears to be great but I don't see any code release...]

Personal tools