我一直在研究如何編程語言的工作,其中一些有所謂的虛擬機。我知道這是另一種編程語言中編程語言的某種形式的模擬,並且它的工作方式就像一個編譯語言將如何執行,以及一個堆棧。我有沒有得到那個權利?虛擬機如何工作?
在附帶條件是我做了什麼之後,我發現很多非編譯語言允許使用「自由」類型系統的變量。在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