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 | 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...] |