Skip to content
/ yeti Public

A programming language implementation to explore the internals of how programming languages work.

License

Notifications You must be signed in to change notification settings

ashokdey/yeti

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ye! The Yeti Programming Language

yeti-programming-language

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

🔍 Goals

  • 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

🚧 Current Status

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

🗃️ Example

// 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));

Notes:

  • A lot can change on the fly as this is under active development

About

A programming language implementation to explore the internals of how programming languages work.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages