Manus에서 모든 스킬 실행
원클릭으로
원클릭으로
원클릭으로 Manus에서 모든 스킬 실행
시작하기vm-dev
스타34
포크5
업데이트2026년 1월 10일 07:28
虚拟机开发专家,专注于字节码、指令、栈帧、内存管理和垃圾回收。
설치
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SKILL.md
readonly메뉴
虚拟机开发专家,专注于字节码、指令、栈帧、内存管理和垃圾回收。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
技术图书写作专家,基于三层Prompt架构(系统级→章节模板→实例提示词)生成《AI Context Engineer 视角下的现代编译器实战》书籍章节。
ANTLR4前端开发专家,专注于词法/语法分析、AST构建、访问者模式。
编译器后端开发专家,专注于IR、CFG、SSA、数据流分析和优化Pass。
EP项目导航专家,提供21个EP的依赖路由、快速定位和跨EP对比。
Git提交专家,规范化提交信息和分主题提交。
测试开发专家,基于JUnit 5 + AssertJ + Mockito + JaCoCo。
| name | vm-dev |
| description | 虚拟机开发专家,专注于字节码、指令、栈帧、内存管理和垃圾回收。 |
| version | v1.0 |
| tags | ["vm","bytecode","execution","stack","memory","gc"] |
| allowed-tools | mcp__serena__find_symbol, mcp__serena__replace_symbol_body, Read, Bash |
| requires-skills | ["ep-navigator","compiler-dev"] |
单一职责: 虚拟机实现 - 字节码执行、指令集、栈帧、内存管理、垃圾回收
BytecodeDefinition.javaep18/src/main/java/org/teachfx/antlr4/ep18/stackvm/CymbolStackVM.javaStackFrame.java (局部变量 + 操作数栈 + 返回地址)ep18r/src/main/java/org/teachfx/antlr4/ep18r/regvm/CymbolRegisterVM.javaHeapMemory.java→ ep-navigator (识别EP范围) → compiler-dev (IR → 字节码)
# 1. 定义操作码
vim ep18/src/main/java/.../BytecodeDefinition.java
// enum OpCode { ..., NEW_OP(0x20); }
# 2. 实现指令类
vim ep18/src/main/java/.../instruction/NewOpInstruction.java
public class NewOpInstruction extends Instruction {
@Override
public void execute(ExecutionContext ctx) {
// 实现逻辑
}
}
# 3. 注册指令
vim ep18/src/main/java/.../InstructionFactory.java
# 4. 测试
mvn test -pl ep18 -Dtest="*NewOpInstruction*"
# 1. 定义对象头
class ObjectHeader {
Type type;
boolean marked;
int size;
}
# 2. 实现标记阶段
void mark(VarSlot root) {
Object obj = heap.get(root);
if (obj != null && !obj.header.marked) {
obj.header.marked = true;
for (VarSlot field : obj.getReferences()) {
mark(field);
}
}
}
# 3. 实现清除阶段
void sweep() {
heap.removeIf(obj -> !obj.header.marked);
}
┌─────────────────────────────────┐
│ 返回地址 (Return Address) │
├─────────────────────────────────┤
│ 局部变量区 (Locals) │
│ [0] [1] [2] [3] ... │
├─────────────────────────────────┤
│ 操作数栈 (Operand Stack) │
│ [...] [...] [...] │
└─────────────────────────────────┘
# 虚拟机相关
mvn compile -pl ep18 # 编译EP18
mvn test -pl ep18 -Dtest="*Instruction*" # 测试指令
mvn test -pl ep18 -Dtest="*VM*" # 测试VM
mvn test -pl ep18 -Dtest="*GC*" # 测试GC
# 运行程序
mvn exec:java -pl ep18 -Dexec.args="program.cx"
| 指令 | 操作码 | 操作数 | 栈效果 | 描述 |
|---|---|---|---|---|
| ICONST | 0x01 | value | → value | 加载整数常量 |
| IADD | 0x10 | - | a,b → a+b | 整数加法 |
| ISUB | 0x11 | - | a,b → a-b | 整数减法 |
| LOAD | 0x20 | index | → value | 加载局部变量 |
| STORE | 0x21 | index | value → | 存储局部变量 |
| CALL | 0x30 | addr | args... → | 调用函数 |
| RET | 0x31 | - | value → | 返回函数 |
| JMP | 0x40 | offset | → | 无条件跳转 |
| CONDJMP | 0x41 | offset | cond → | 条件跳转 |
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 栈溢出 | 操作数栈超限 | 检查指令栈平衡 |
| 栈下溢 | 弹出空栈 | 验证指令前置条件 |
| 类型错误 | 操作数类型不匹配 | 添加类型检查 |
| 内存泄漏 | GC未正确标记 | 检查根集完整性 |
版本: v1.0 | 垂直职责: 虚拟机实现 | 2025-12-23