VESPER

A small, expressive programming language designed for learning, experimentation, and scientific computing.

Vesper is a programming language built from scratch in C++17. It started as an exploration of how programming languages work internally — lexing, parsing, type checking, interpretation — with compilation and native code generation planned for the future.

The long-term goal is to grow Vesper into a language suited for scientific computing and high-performance computing (HPC), while keeping the core language simple and easy to understand.

Status: experimental, under active development. Syntax, type system, runtime, and architecture may change substantially. Vesper is currently meant for learning and language-research, rather than production use.


Quick taste

let name = "Vesper";
mut counter = 0;

fn square(x: float): float {
    x ** 2
}

let matrix: [[int]] = [
    [1, 2, 3],
    [4, 5, 6]
];

print("Hello, ", name, "\n");
print(square(4.0), "\n");
print(matrix[0][1]);

For the full language tour, see Variables, Types, Arrays, Operators, and Functions. To just run it, start with Installation.

Where to go next

Built with

C++17, CMake, and a hand-written lexer, recursive-descent parser, AST, static type checker, and tree-walking interpreter — plus vspfmt, Vesper’s own source formatter, and CTest for automated testing.

License

Vesper is released under the GPL-3.0 License.

Author

Built by Tajul Tonim, as an ongoing exploration of programming languages, compilers, numerical computing, and high-performance computing.