A programming language implementation to explore the internals of how programming languages work.
Ye! is not production-ready programming language; instead, it is a living experiment to uncover the secrets like:
- How programming languages are built
- What happens under the hood, from source code to execution
- The structure of lexers, parsers, ASTs, code generation, and more
- Understand the lifecycle of a program from source code to execution
- Experiment with building language features from scratch
- Learn about language design, syntax rules, parsing, and code generation
- Explore compiler theory with practical, iterative code
Ye! is in active exploration mode. The following are planned or implemented:
- Basic lexer
- Parser and AST
- Minimal grammar (variables, addition, printing)
- Typed AST generation
- Error reporting, debugging aids
- REPL / CLI tools
- Bytecode or RISC-V backend
// sample code file code.ye
let x := 10
let y := 20
// comparison
if (x < y) {
println("x is smaller than y");
} else {
println("y is smaller than x");
}
// recursive function
fun factorial(n) {
if n <= 1 {
return 1;
} else {
return n * factorial(n - 1)
}
}
// function call
println(factorial(5));- A lot can change on the fly as this is under active development
