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.
Felix is a programming language with a fully featured purely functional subsystem embedded in a a traditional Algol-like imperative programming system. The system features garbage collection, static typing, parametric polymorphism, overloading, regular expression matching, and a lot more. A scripting harness is used to invoke source files, but fully compiled binary shared libraries are generated, yielding both rapid prototyping and high performance. Seamless binding of C/C++ code makes interfacing existing libraries easy. Control inversion provides language-level cooperative multi-tasking.
Goba (Game Of Bases) is a remake of the classic Flash Attack game featuring pre-rendered graphics, sound, and networking (no computer opponents) with meta-server support. You control four tanks and try to destroy enemy bases while defending your own. The tanks have weapons, a set of mines, and the capability to build walls and fake bases, all of which may be recharged back at the base. The bases have a limited number of bomb attacks in their disposal, plus a laser beam that can cut through the whole game field (2000 x 2000 pixels).
Hydro is an independent implementation of ICE, the object-oriented RPC protocol by ZeroC, for the O'Caml programming language. Hydro (like ICE) allows you to bridge language barriers by letting components written in different programming languages communicate with each other. ZeroC's ICE product currently includes implementations for C++, Java, C#, Python, Ruby, VB, and PHP. Hydro adds support for O'Caml. Hydro includes an asynchronous runtime and a generator called hydrogen.
The primary goal of ChartPak is to provide an easy-to-use library for dynamically generating statistical and financial charts for the Web. It will include a wide variety of common chart types (pie charts, bar charts, etc.), and may eventually provide support for more specialized types of graphics.