Main Page
Welcome to Nova!
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++.
What is Nova?
Nova combines the robust type systems and power of languages like OCaml and Haskell with the familiar, imperative structure of modern systems languages.
Key Features
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 novac compiler is built with OCaml and Dune for high-performance compilation.
The Project
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.
Get Involved
Explore the source code, check out our vision, and contribute to the compiler on GitHub: