One of my slowly-progressing spare-time projects is yet another
object system for C called "cobj". This one is
different from the others (such as
etc.) because it is explicitly designed to support the long-term
maintenance of ABI compatibility, which is particularly useful for systems
that can load binary code modules at run-time. Although Java etc. has mostly
made this kind of technology obsolete, there is still plenty of low-level
code that is written in C that can benefit from OO techniques, such as
JVMs and Unix kernels; indeed, the starting-point for cobj was
FreeBSD's kernel object system,
To this basis I have added ideas from
CLOS, such as a simple
and the idea of a metacircular implementation (cobj is
written in cobj), and a better desugaring preprocessor.
It is still a work in progess, though, so
email me if you want more information.
You can also look at
and a couple of
comp.std.c which are related to cobj.
$dotat: doc/web/writing/cobj.html,v 1.2 2003/07/03 14:18:08 fanf2 Exp $