Nitpick Compiler (npkc) Specification

The npkc compiler (v0.8.4) offers a comprehensive suite of flags for emitting different target binaries, enabling static verification, tuning memory management, and integrating with external analysis tools (like Z3 and NIKOS).

1. Core Compilation Options

Basic commands dictate the final compilation target and format.

2. Emitting Formats (Targets)

Nitpick supports compiling to CPU, GPU, and WebAssembly targets, as well as emitting intermediate files.

2.1 GPU/WASM Target Tuning

3. Optimization & Debugging

4. Formal Verification (Z3 SMT Solver)

Nitpick uses the Z3 SMT solver natively to enforce compile-time constraints, memory limits, and Design-by-Contract assertions (requires, ensures, invariant).

5. Abstract Interpretation (NIKOS/IKOS)

The compiler natively integrates NIKOS for abstract interpretation to verify properties the borrow checker cannot guarantee alone (like divide-by-zero, deep buffer overflow, and nullity).

6. Runtime Auditing & Memory Diagnostics

Flags to enforce security parameters and analyze memory utilization at runtime.

7. Warnings