我一直在研究编程语言是如何工作的,其中一些语言有所谓的虚拟机。我知道这是在另一种编程语言中对编程语言的某种形式的模拟,并且它的工作方式类似于使用堆栈执行编译语言的方式。我说对了吗?
有了我所说的条件,令我困惑的是,许多非编译语言允许变量具有“自由”类型系统。例如,在Python中,我可以这样写:
x = "Hello world!"
x = 2**1000
字符串和大整数是完全不相关的,并且占用不同数量的内存空间,那么如何在基于堆栈的环境中表示这些代码呢?这里到底发生了什么?X是否指向堆栈上的新位置,而旧的字符串数据未被引用?这些语言不使用堆栈吗?如果不是,它们如何在内部表示变