字节码指令集 Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。 对于大部分为与数据类型相关的字节码指令,他们的操作码助记符中都有特殊的字符来表明专门为哪种数据类型服务:i代表对int类.....
分类:
编程语言 时间:
2014-07-13 08:09:05
阅读次数:
457
导言把一件简单的事情做复杂很容易,把一件复杂的事情做简单却不易。在计算机的世界里,冯.诺依曼把复杂的电脑简化为:存储器,控制器,运算器和I/O设备;丹尼斯·里奇把晦涩的汇编语言简化为258页的《C程序设计语言》;詹姆斯高斯林把繁琐的跨平台编码简化为256条字节码指令;对我们大部分人而言,把简单的事情...
分类:
Web程序 时间:
2014-06-18 08:22:25
阅读次数:
269
1.
Python虚拟机会从编译得到的PyCodeObject对象中依次读入每一条字节码指令,
并在当前的上下文环境中执行这条字节码指令。
Python虚拟机实际上是在模拟操作中执行文件的过程
PyCodeObject对象中包含了字节码指令以及程序的所有静态信息,但没有包含
程序运行时的动态信息——执行环境(PyFrameObject)
2.Python源码中的PyFrameObject
typedef struct _frame{
PyObject_VAR_HEAD //"运行时栈"的大小是不确定的...
分类:
编程语言 时间:
2014-06-18 06:33:24
阅读次数:
323
1.字节码指令
LOAD_CONST:从consts表中读取序号为i的元素并压入到运行时栈中
STORE_NAME:改变local名字空间。从符号表names取序号为i的元素作为变量名,
取运行时栈的栈顶元素作为变量值,完成从变量名到变量值的映射关系的创建。
BUILD_MAP:创建一个空的PyDictObject对象,并压入运行时栈
DUP_TOP:将栈顶元素的引用计数增加1,并将它再次压入栈中
ROT_TWO:将栈顶的两个元素进行对调
LOAD_NAME:符号搜索,并将该元素压入运行时栈
Py...
分类:
编程语言 时间:
2014-06-18 00:32:18
阅读次数:
295
编写Test.java,编译完后生成Test.class文件,然后对该文件执行javap -c Test命令,生成字节码指令,阅读并得出结论
一、s1和s2指向常量池的不同常量
①java代码
public class Test {
public static void main(String[] args) throws IOException {
...
分类:
编程语言 时间:
2014-05-22 17:02:59
阅读次数:
434