Contributing
Vesper is an evolving programming-language project.
Source tree
The current implementation is organized approximately as:
vesper/
├── CMakeLists.txt
├── src/
│ ├── main.cpp
│ ├── token.hpp
│ ├── token.cpp
│ ├── lexer.hpp
│ ├── lexer.cpp
│ ├── ast.hpp
│ ├── ast.cpp
│ ├── parser.hpp
│ ├── parser.cpp
│ ├── environment.hpp
│ ├── environment.cpp
│ ├── interpreter.hpp
│ ├── interpreter.cpp
│ ├── type_checker.hpp
│ ├── type_checker.cpp
│ └── type.hpp
├── tests/
└── tools/
├── formatter.hpp
├── formatter.cpp
└── vspfmt.cpp
Build
From the project root:
cmake -S . -B build
cmake --build build
Design direction
The long-term compiler architecture is planned around:
Vesper source
↓
Lexer / Parser
↓
AST
↓
Static Type System
↓
Vesper IR
↓
Vesper-specific optimizations
↓
LLVM IR
↓
LLVM
↓
Native code
Potential future areas include:
- native compilation
- LLVM backend
- improved numeric types
- ownership and memory-model features
- efficient multidimensional arrays
- SIMD
- parallel loops
- GPU computing
- C interoperability
- scientific-computing libraries
Features should only be marked as stable in the language documentation after they are implemented and tested.