Skip to main content
i++ is a systems programming language that builds on C11 while adding features for systems programming. The j++ compiler processes .ix source files, generates C and assembly, and uses GCC and NASM to produce Linux x86_64 ELF binaries. The language is designed around three principles:
  • Explicit over implicit: memory allocation and ownership remain visible in your source.
  • Simple over clever: syntax stays close to C.
  • Extensible over fixed: .ih libraries let you package reusable i++ code.

Explicit

Memory allocation and ownership stay visible in your source.

Familiar

C11 syntax makes it easier to read and build on existing knowledge.

Extensible

.ih libraries let you organize and reuse i++ code.

Language features

i++ retains the C11 baseline, including pointers, enums, unions, typedef, control flow, and C-style structs. It also provides:
  • string values and dynam arrays.
  • Explicit heap allocation with allocate and free.
  • Namespaces and library imports with space, using, expose, and @.
  • Inline assembly blocks.
  • The iodine standard library.
Some features described in the language reference are still planned and are not implemented in the compiler. Check compiler status before relying on them.

Platform support

The supported target is Linux x86_64. The compiler emits ELF binaries and invokes GCC and NASM for native compilation. macOS support is being dropped, and other operating systems and architectures are not supported targets.
New to i++? Follow the quickstart to compile and run a first program.