vm-dev
Virtual machine development expert focusing on bytecode design, stack-based/register-based VM implementation, memory management, and garbage collection.
Introduction
The vm-dev skill is a specialized engineering assistant designed to guide users through the complex architecture of language virtual machines. It focuses on the implementation of runtime environments for the Cymbol programming language, covering the full lifecycle of code execution from bytecode interpretation to low-level memory management. This agent is ideal for compiler engineers, systems programmers, and computer science students looking to bridge the gap between high-level language parsing and hardware-level execution.
-
Bytecode Design: Defines instruction sets (e.g., IADD, LOAD, STORE, CALL) and manages operand stack behaviors.
-
VM Architectures: Supports both stack-based (EP18) and register-based (EP18R) virtual machine implementation, including instruction decoding and execution context management.
-
Memory Management: Implements heap memory structures, object layouts, and custom garbage collection algorithms like mark-and-sweep.
-
Execution Engines: Manages stack frames, return addresses, and register allocation based on ABI conventions.
-
Optimization Analysis: Provides insights into performance benchmarking using JMH and structural analysis via call graphs.
-
Technical Requirements: Assumes familiarity with Java 21, Maven, and ANTLR4 build processes.
-
Workflow Integration: Users can ask for help in adding new instructions, debugging stack overflows or underflows, and resolving type mismatches in the VM.
-
Performance Constraints: Provides guidance on heap usage, GC thresholds, and instruction execution latency in nanosecond scales.
-
Input/Output: Accepts .cymbol source files or VM assembly (.vm) and generates bytecode, execution logs, or visualization data for memory and stack states.
Repository Stats
- Stars
- 34
- Forks
- 5
- Open Issues
- 0
- Language
- Java
- Default Branch
- main
- Sync Status
- Idle
- Last Synced
- May 3, 2026, 08:22 PM