high level

COS design is tuned to provide efficient portable implementation of these concepts, specially dynamic message dispatch (x1.7-x2.3 slower than an indirect function call and about x1.2-x1.5 faster than Objective-C) as well as generic message forwarding (as fast as message dispatch and about x40-x80 faster than Objective-C). On top of these concepts, it is easy to implement high order messages, class-predicate dispatch, multiple inheritance, dynamic inheritance, dynamic classes, adaptive object model, reflection and advanced memory management. It also simplifies the programming of multi-agent systems, distributed systems or adaptive systems. COS seems to achieve the principles 1-2-3 as well as existing mainstream scripting languages (e.g. PHP, Python, Ruby, SmallTalk) while keeping principles 4-5 in the range of C. Nevertheless, COS is compliant with POSIX threads and requires a (moderately compliant) C99 compiler.



[size=506kB]

as-is

Acknowledgment

Ovidiu Achim

Florent Georges

For the moment, you can download the tarball. This code is NOT for software distribution and comes without any guarantee of any sort. I plan to use the GPL license for the first public release. The development was stopped during the phase of code cleaning and some work remains to make it clean and usable for large project. Part of the code do not compile (i.e. ooc-db module which was written on top of an old version of OOC-2.0) and the manual is obsolete but looking at the code of some classes should be enough to be able to use it. For the moment, this code is only provided for curiosity purpose, but if enough people are interested by this framework, I will update the manual and continue to develop and maintain the core part (i.e. ooc-core) which is the only usable and required part for serious OOPC. The compagnion library (i.e. ooc-std) is incomplete and untested, but it could be used as a start to develop a useful library on top of OOC-2.0.: I would like to thankswho wrote the objects fast allocator, the testsuite of ooc-core, most of the code you may find in the ooc-std library and did the port of JUnit. Andwho did a partial port of JDBC (code in ooc-db).