C3 is a systems language based on C. It is an evolution of C, improving on what C can't easily change for legacy reasons while retaining its syntax and feel as far as possible.

Some changes from C:

  • Module system
  • Integrated build system
  • Generics
  • Semantic Macros
  • Error handling
  • Defer
  • Value methods
  • Associated enum data
  • Subtypes
  • Optional contracts
  • Subarrays (slices)
  • [] overloading to create container types
  • Foreach
  • "any" type for runtime polymorphism