The C Object System: Using C as a High-Level Object-Oriented Language
Laurent Deniau

TL;DR
The C Object System (Cos) introduces high-level object-oriented features into C, enabling flexible, extensible, and efficient programming with concepts like multi-methods, delegation, and contracts, bridging the gap between scripting flexibility and C efficiency.
Contribution
Cos provides a novel, portable C library that implements advanced object-oriented concepts, enhancing C's capabilities for flexible and reusable software design.
Findings
Efficient implementation of message multi-dispatch in C
Enhanced code extensibility and reusability
Simplifies adaptive and aspect-oriented programming in C
Abstract
The C Object System (Cos) is a small C library which implements high-level concepts available in Clos, Objc and other object-oriented programming languages: uniform object model (class, meta-class and property-metaclass), generic functions, multi-methods, delegation, properties, exceptions, contracts and closures. Cos relies on the programmable capabilities of the C programming language to extend its syntax and to implement the aforementioned concepts as first-class objects. Cos aims at satisfying several general principles like simplicity, extensibility, reusability, efficiency and portability which are rarely met in a single programming language. Its design is tuned to provide efficient and portable implementation of message multi-dispatch and message multi-forwarding which are the heart of code extensibility and reusability. With COS features in hand, software should become as…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Software Engineering and Design Patterns · Model-Driven Software Engineering Techniques
