Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

The pre-0.3 ooc codebase, for reference (a few useful hacks in there)

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

 ooc, aka: another hack at 'object oriented C'

ooc is an object-oriented programming language which is implemented with 
a source-to-source translator to pure C99. It supports classes, abstract 
functions, foreach, ranges, etc. It intends to be modern, modular, 
extensible, yet simple and fast.

ooc is trying to reconcile high-level concepts from Java and the speed 
and small footprint of C. It somehow falls into the same category as 
Vala, except that Vala is based on GLib, while ooc is based only on the
standard C library, making it very lightweight.

ooc is for people thriving for object orientation and other high level 
features (e.g. a garbage collector, foreaches, imports vs includes), 
without willing to bear the weight of C++ or the Java/C# runtime 

ooc's syntax is inspired by Java and C, without the hassle. Source files
are organized in packages, and most dependencies are resolved
automagically (e.g. a simple 'use gl;' instructs the compiler to include
OpenGL headers, and to link to -lGL or -lopengl32, depending on the target

ooc's primary implementation is written in Java, for portability.
A project to write an ooc compiler in ooc itself, called 'rock', has
been launched on GitHub recently.
Stay tuned at:

The standard library aims to be small, fast, portable, and modular. 
For now it contains file reading/writing classes, time classes, process 
launching classes, fairly complete GTK bindings, OpenGL/GLU/GLUT bindings, 
basic SDL bindings, string manipulation routines, and more to come.

The ooc compiler isn't perfect, but it's very usable for the time being.
A few projects are already using it, and there will be an Artifical
Intelligence programming contest during the summer!

While ooc is certainly not ready for the enterprise, it is a very 
good candidate for the next language you want to learn and fiddle with.

I'm really to discussion about language design/implementation, etc. 
and I'd really appreciate feedback about ooc, so don't hesitate to 
contact me at


 -                         Official website
 -    Language Reference guide
 -            Git repository

Something went wrong with that request. Please try again.