Vesper is still in its early stages and is being developed incrementally.

Language

  • Variables & mutable variables (mut)
  • Type annotations
  • Type inference
  • Primitive types
  • Arrays
  • Nested arrays
  • Array indexing
  • Arithmetic operators
  • Remainder (%)
  • Floor division (//)
  • Exponentiation (**)
  • Unary operators
  • String escape sequences
  • Multi-argument print
  • Comments
  • Static type checking
  • Source formatter
  • Functions
  • Function calls
  • Explicit return
  • for loops
  • range
  • Tuples
  • Slicing
  • Structs
  • Pattern matching
  • Generics
  • Modules / imports
  • Standard library

Compiler

  • Intermediate representation
  • IR interpreter
  • Constant folding
  • Basic optimizations
  • Native code generation
  • C backend
  • RISC-V backend
  • LLVM backend
  • AOT compilation
  • JIT compilation
  • C FFI / C ABI integration

Scientific computing

The long-term goal is to make Vesper useful for numerical and scientific workloads. Planned areas include:

  • Matrix types
  • Tensor types
  • Linear algebra
  • Numerical methods
  • Scientific standard library
  • SIMD / vectorization
  • Parallel computing
  • MPI support
  • GPU computing

Long-term vision

The goal is a language that combines the expressiveness of a modern high-level language with the performance and control scientific computing demands:

Vesper
 ├── General Programming
 ├── Scientific Computing
 │    ├── Arrays, Matrices, Tensors
 │    └── Numerical Methods
 └── High Performance Computing
      ├── SIMD
      ├── Multithreading
      ├── MPI
      ├── GPU Computing
      └── Native Compilation

See Architecture for how the current interpreter-first pipeline is meant to evolve toward this, and Contributing if you’d like to help move any of these items forward.