我一直在研究如何编程语言的工作,其中一些有所谓的虚拟机。我知道这是另一种编程语言中编程语言的某种形式的模拟,并且它的工作方式就像一个编译语言将如何执行,以及一个堆栈。我有没有得到那个权利?虚拟机如何工作?
在附带条件是我做了什么之后,我发现很多非编译语言允许使用“自由”类型系统的变量。在Python例如,我可以这样写:
x = "Hello world!"
x = 2**1000
字符串和大整数完全无关,并占据不同量的内存空间,所以这怎么能代码即使在一个基于堆栈的环境来表示?究竟发生了什么? x是否指向堆栈中的新位置,并且旧字符串数据未被引用?这些语言不使用堆栈吗?如果不是,他们如何在内部表示变量?
大的第一个问题! – samoz 2009-05-29 21:02:45
相关问题:http://stackoverflow.com/questions/688803/how-does-a-register-based-virtual-machine-work – lothar 2009-05-29 21:18:38