Building programming languages from scratch, one bytecode at a time
I'm a systems programmer passionate about understanding how programming languages work under the hood. Instead of just using languages, I build them β implementing parsers, compilers, VMs, and debuggers from scratch.
- π¦ Writing language runtimes in Rust, C, Go, and TypeScript
- π§ Deep diving into JavaScript engines (QuickJS enthusiast)
- π§ Crafting parsers, bytecode VMs, and garbage collectors
- π Teaching others through detailed tutorials and open-source projects
- π Based in China, coding in multiple (human & programming) languages
let skills = TechStack {
languages: vec!["Rust", "C/C++", "Go", "TypeScript", "JavaScript"],
domains: vec!["Compilers", "Interpreters", "Virtual Machines", "Parsers"],
interests: vec!["Language Design", "GC Algorithms", "Bytecode Optimization"],
learning: "Making QuickJS slow (but debuggable) π"
};Language Implementation Stack:
- Frontend: Lexers, Recursive Descent Parsers, Operator Precedence Parsing
- IR & Backend: AST β Bytecode, Code Generation, Optimization
- Runtime: Reference Counting + Mark-Sweep GC, Closure Implementation
- Tooling: Debuggers, Heap Analyzers, Language Servers