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