The C Code Analyzer (CCA) is a static analysis tool for detecting potential security problems in C source code. It's fully automatic; no code annotations or the like are required. It features an automatic user input tracer, potential buffer overflow detection, and more. An eclipse frontend plugin is included.
CIL is a frontend for the C programming language which facilitates program analysis and transformation. CIL will parse and typecheck a program, and compile it into a simplified subset of C. For example, in CIL, all looping constructs are given a single form and expressions have no side effects. This reduces the number of cases which must be considered when manipulating a C program. CIL has been used for a variety of projects, including CCured, a tool which makes C programs memory safe. It supports ANSI C, as well as most of the extensions of the GNU C and Microsoft C compilers. A Perl script acts as a drop-in replacement for either gcc or Microsoft's cl, and allows merging of the source files in your project. Other features include support for control-flow and points-to analyses.
Capstone is a disassembly framework with the target of becoming the ultimate disasm engine for binary analysis and reversing in the security community. Running on Windows, Mac OS X, Linux, FreeBSD, OpenBSD, and Solaris, it can disassemble ARM, ARM64 (ARMv8), MIPS, PPC, and x86 architectures. Capstone provides rich details about disassembled instructions along with useful semantic information.
CPC (Continuation Passing C) is a programming language designed for writing concurrent systems. The CPC programmer manipulates very lightweight threads, choosing whether they should be cooperatively or preemptively scheduled at any given point; the CPC program is then processed by the CPC translator, which produces highly efficient event-loop code. This approach gives the best both worlds: the relative convenience of programming with threads, and the low memory usage of event-loop code. The semantics of CPC is defined as a source-to-source translation from CPC into plain C using a technique known as conversion into Continuation Passing Style. The current implementation of CPC has been used to write Hekate, a BitTorrent seeder designed to handle millions of simultaneous torrents and tens of thousands of simultaneously connected peers.
Document clustering is a data mining suite to cluster a document set. This set of tools was implemented from a series of papers: "Clustering Web Pages Semantically using Combinatorial Topology", "Data mining using granular computing", and "A fast association rule algorithm based on bitmap and granular computing".
Frama-C is a suite of tools dedicated to the analysis of the source code of software written in C. Frama-C gathers several static analysis techniques in a single collaborative framework. The collaborative approach allows static analyzers to build upon the results already computed by other analyzers in the framework. It provides sophisticated tools, such as a slicer and dependency analysis.