Bytecode VM
// Expert skill for bytecode virtual machine design including instruction set design, dispatch mechanisms, and stack/register architectures
$ git log --oneline --stat
stars:384
forks:73
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameBytecode VM
descriptionExpert skill for bytecode virtual machine design including instruction set design, dispatch mechanisms, and stack/register architectures
categoryRuntime
allowed-toolsRead,Write,Edit,Glob,Grep,Bash
Bytecode VM Skill
Overview
Expert skill for bytecode virtual machine design including instruction set design, dispatch mechanisms, and stack/register architectures.
Capabilities
- Design bytecode instruction sets
- Implement stack-based vs register-based VMs
- Implement efficient dispatch (switch, computed goto, threaded)
- Design compact bytecode encoding
- Implement bytecode verification
- Handle exception handling in bytecode
- Design inline caching for dynamic dispatch
- Implement bytecode serialization/deserialization
Target Processes
- bytecode-vm-implementation.js
- interpreter-implementation.js
- jit-compiler-development.js
- repl-development.js
Dependencies
VM implementation literature (Crafting Interpreters, Programming Language Pragmatics)
Usage Guidelines
- Architecture Selection: Choose stack-based for simplicity, register-based for performance
- Dispatch Mechanism: Use computed goto/threaded dispatch for hot loops
- Encoding: Design compact bytecode encoding to improve cache locality
- Verification: Implement bytecode verification for security and debugging
- Inline Caching: Add inline caching for polymorphic call sites
Output Schema
{
"type": "object",
"properties": {
"architecture": {
"type": "string",
"enum": ["stack-based", "register-based", "hybrid"]
},
"dispatch": {
"type": "string",
"enum": ["switch", "computed-goto", "direct-threaded", "indirect-threaded"]
},
"instructionCount": { "type": "integer" },
"encoding": {
"type": "string",
"enum": ["fixed-width", "variable-length"]
},
"generatedFiles": {
"type": "array",
"items": { "type": "string" }
}
}
}