The C3 Guide
What is C3?
C3 is an evolution of C and a minimalist systems programming language, featuring:
🦺 Ergonomics and Safety
- Optionals to safely and quickly handle errors and null.
- Defer to clean up resources.
- Slices and foreach for safe iteration.
- Contracts in comments, to add constraints to your code.
⚡ Performance by default
- Write SIMD vectors to program the hardware directly.
- Access to different memory allocators to fine tune performance.
- Zero overhead errors.
- Fast compilation times.
- LLVM backend for industrial strength optimisations.
- Easy to use inline assembly.
🔋Batteries included standard library
- Dynamic containers and strings.
- Cross-platform abstractions for ease of use.
- Access to the native platform when you need it.
🔧 Leverage existing C or C++ libraries
- Full C ABI compatibility.
- C3 can link C code, C can link C3 code.
📦 Modules are simple
- Modules namespace code.
- Modules make encapsulation simple with explicit control.
- Interfaces define shared behaviour to write robust libraries.
- Generic modules make extending code easier.
- Simple struct composition and reuse with struct subtyping.
🎓 Macros without a PhD
- Macros can be similar to normal functions.
- Or write code that understands the types in your code.