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.
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.
palmfs is a PalmOS filesystem access software for Linux, based on FUSE. It consists of two parts, a client and a server. The client is a FUSE-based application running on the Linux system. The server part is a PalmOS application that actually executes commands sent by the client. It is intented to support various communication ports and to access the PalmOS internal filesystem as well as expansion cards.
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".
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.