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.
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.
NVM Virtual Machine is a small, fast, extensible and portable virtual machine. It can be used, for example, as a scripting engine in microcontrollers. It can be configured to work in a few modes (with a machine word equal to 16, 32, or 64 bits) depending on user needs. Programming is done using an ASM-like language or a (simple) higher level language which is implemented using ocamllex and ocamlyacc.