Edit: It's reference  on the paper.
also, what approach does it take to memory management and / or deciding who owns what? i'm just glancing at the paper now (should really be working) and the lack of emphasis on that seems worrying - suspect i am missing something?
[edit: replying to myself, the key phrase is "ownership"; see section 2.1: Ownership The management of object life cycles requires a clear policy of ownership and scope rules. In languages like C and C ++ where semantic by value prevails, the burden is put on the programmer’s shoulders. In languages like JAVA, C # and D where semantic by reference prevails, the burden is put on the garbage collector. In this domain, COS lets the developer choose between garbage collection (e.g. Boehm GC ) and manual reference counting with rich semantic (section 3.5).]
2) And this is different exactly in that it is not a complete language, but a library of CPP macros and some supporting infrastructure.
I blame my confusion on the .cpp extensions!
OTOH, Cos offers more compile-time type safety than GLib, so you might hope that you'd need to spend less time in the debugger.
As a friend of mine likes to put it - "Objective-C is C raped by Smalltalk without proper understanding of the language anatomy". Not exactly accurate, but fairly close still :)
CLOS features in C - interesting!