About: A sidequest is an optional, not graded, not evaluated in anyway exploration into a topic. Sometimes it is just cool to know what is out there in the world. Sidequests come with a little descritions, presentations, related resources, and a sample code or exercise you can try. Side quests are likely a good area for further independent studies, research project, thesis, etc.

Modern C with Classes

After using C for a full semester, you probably miss some of your favorite features. Things like classes, inheritence, information hiding, exceptions, etc.

Problem Statement

Implement a subset of OOP features in the C language. Additionally, add more features to make a 'C' a safe language

Proposed Exercise

Start with implementing classes, then inheritence, then a few interesting features like exception handling, lambda's, some form of generics.

Going Further

Implementing additional features like (opt-in or opt-out) garbage collection to make C a safer language may also be interesting.

Proposed Evaluation

Present several interesting code snippets that are robust in a C++ like manner. Measure the performance of your C implementation versus that of a C++ compiler versus that of a C compiler. That is, we will want to understand the overhead of implementing our features, perhaps against the trade-off of other features like having memory safety gaureentees.

Key Resources

(The first resource you should read)

Additional Resources