Nova is a programming language designed to bridge the gap between functional programming and C-like systems languages. Our goal is to make functional paradigms accessible to developers familiar with the syntax of Rust, Zig, C, and C++.
Nova combines the robust type systems and power of languages like OCaml and Haskell with the familiar, imperative structure of modern systems languages.
- Friendly Syntax: Inspired by the C-family to ensure a shallow learning curve.
- Functional Roots: Deeply influenced by OCaml's functional patterns.
- Flexible Memory Management: A garbage-collected language that offers optional explicit control over allocations.
- Modern Tooling: The
novaccompiler is built with OCaml and Dune for high-performance compilation.
The project currently features a functional compiler (novac) with:
- Lexer & Parser: Full implementation for Nova source files.
- AST Definitions: Detailed Abstract Syntax Tree nodes for declarations, expressions, and statements.
- Example Suite: Check out our examples for currying, complex types, and more in the repository.