字节码与编译器¶
jaon/compiler.py 将类型检查后的 AST 编译为自定义 Bytecode,
存储在 jaon/bytecode.py 定义的 CodeObject 中。
核心指令¶
指令 |
说明 |
|---|---|
|
加载常量到栈 |
|
从全局作用域加载名称 |
|
存储到全局作用域 |
|
从局部变量加载 |
|
存储到局部变量 |
|
读取对象属性 |
|
写入对象属性 |
|
读取索引值 |
|
写入索引值 |
|
构造列表 |
|
构造字典 |
|
二元运算 |
|
一元运算 |
|
比较运算 |
|
无条件跳转 |
|
条件跳转 |
|
函数调用 |
|
带值返回 |
|
构造函数对象 |
|
构造类对象 |
|
创建对象实例 |
|
获取迭代器 |
|
迭代 |
|
异常处理块开始 |
|
抛出异常 |
查看字节码¶
python -m jaon dis examples/control_flow.jaon