Skip to content
View hsiaosiyuan0's full-sized avatar
  • NetEase
  • 20:56 (UTC +08:00)

Highlights

  • Pro

Organizations

@regularjs @x-orpheus @going-merry0

Block or report hsiaosiyuan0

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
hsiaosiyuan0/README.md

👋 Hey, I'm hsiaosiyuan0

🔬 Language Implementation Enthusiast | Compiler & Interpreter Craftsman

Building programming languages from scratch, one bytecode at a time


🚀 About Me

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

🛠️ Tech Arsenal

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

Popular repositories Loading

  1. naive naive Public

    Learn JavaScript the hard way 🤯

    Rust 224 12

  2. icj icj Public

    Tutorials for how to implement Interpreter and Compiler in JavaScript

    JavaScript 176 17

  3. jlua jlua Public

    Yet another Lua implementation in pure JavaScript.

    JavaScript 143 15

  4. slowjs slowjs Public

    Learning the awesome QuickJS

    C 76 10

  5. mole mole Public

    Mole is a collection of parsers to parse the frontend stuffs.

    Go 27 2

  6. pikajs pikajs Public

    JavaScript Interpreter in TypeScript

    TypeScript 19 1