nC_PROGRAMMING LANGUAGE

Why nC exists

A program runs on a concrete machine. Between source and execution, the toolchain chooses data layouts, calling conventions, memory operations, linkage and operating-system services. nC aims to make those decisions expressible within one language and traceable through its compiler.

The language exposes several levels. Ordinary source describes functions, data and control flow. The root [@] establishes foundational contracts. [@machine] exposes typed instructions and control transfers. primitive[@] specifies lower-level material operations. Transitions between these surfaces must retain the information needed to validate each operation.

Toolchain sovereignty means being able to inspect and build the compiler and its dependencies. The compiler written in nC and its successive bootstrap generations serve that objective. Seeds, runtime providers and external tools remain explicit inputs while the build depends on them.

V81 records reconstruction and execution on specific x86-64 profiles. Global Stage3 promotion remains open. Each support claim is limited to its inputs, target and recorded checks.

nC is currently relevant to compiler development, data representation, ABI work and native code generation. Start with small programs and retain the compiler digest used to build them. Memory has manual/raw semantics: the program controls allocation, address validity and release.

View source on GitHub ↗PDF manual ↓

Search nC