Find file
Fetching contributors…
Cannot retrieve contributors at this time
56 lines (42 sloc) 2.36 KB
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