/Cwerg

The best C-like language that can be implemented in 10kLOC.

Primary LanguageAssemblyApache License 2.0Apache-2.0

Cwerg

The best C-like language that can be implemented in 10kLOC

Status GitHub stars Discord

Cwerg aims to be a complete, compact and fast "from-scratch" compiler for a C-like language. It consists of the following components:

Most components are implemented twice (see rationale):

  1. spec/reference implementation: Python 3.9
  2. high performance implementation: C++17 (with limited STL usage)

Re-implementations in other languages are explicitly encouraged. A lot of code is table driven to facilitate that.

Cwerg de-emphasizes quality of the generated code (the hope is to come within 50% of state of the art compilers) in favor of a small code base that can be understood by a single developer and very fast translation times. Explicit line number targets are in place to prevent feature creep:

  • frontend: 10kLOC
  • backend 10kLOC (target independent code) + 5kLOC (per target)

Inspirations