dis:Disassembler of Python byte code into mnemonics.
Java、Python、Ruby 1.9 这些语言均使用了栈机器型的 VM。因为是基于栈的实现,因此,VM 执行的命令行与 Forth(号称语法最少) 语言是一样的。
1 2 3 * +
我们可以使用 Python 自带的库文件 dis,来显示 VM 执行的命令行:
>> import dis
>> dis.dis(lambda x, y, z: (x+y)*z)
输出为:
1 0 LOAD_FAST 0 (x) # x 压栈
3 LOAD_FAST 1 (y) # y 压栈
6 BINARY_ADD # 栈上数字相加
7 LOAD_FAST 2 (z) # 将 z 压栈
10 BINARY_MULTIPLY # 栈上数字相乘
11 RETURN_VALUE
# XY+Z*