Babysitter Bytecode VM
Expert skill for bytecode virtual machine design including instruction set design, dispatch mechanisms, and stack/register architectures
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/programming-languages/skills/bytecode-vm" ~/.claude/skills/a5c-ai-babysitter-bytecode-vm && rm -rf "$T"
manifest:
library/specializations/programming-languages/skills/bytecode-vm/SKILL.mdsource content
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" } } } }