0
我正在研究綁定過程和基於存儲綁定的變量分類。所以,我面臨着四種變量:我可以說,在動態類型綁定的語言中,所有變量都分配在一個堆上嗎?
- 靜態變量:這些變量在執行前(即編譯期間)綁定到內存,並在整個執行過程中保持綁定狀態。
- 堆棧動態變量:這些變量在編譯時靜態綁定到某個類型,但它們沒有綁定到內存位置,直到代碼執行達到聲明。
- 顯式堆動態變量:這些變量通過顯式運行時,程序員指定的指令進行分配和釋放。堆,而不是堆棧,用於提供所需的存儲單元。
- 隱式堆動態變量:這些變量的所有屬性(包括內存單元)在分配給它們的值時都會被綁定。
我的問題是關於2型和4在編程語言,其類型招標是動態的(PHP和Ruby,Python和......)所有變量似乎是類型4.
是是真的?所有變量甚至局部變量都放在堆上?這是一個實現的東西,還是不可能實現一種動態類型綁定的語言,其中局部變量放在堆棧中,其他堆放在堆中?
謝謝,我真的期待這個答案,分配和打字之間沒有關聯。但是,我不確定,因爲我沒有在Sebesta的書中找到這個答案。 – 2013-03-01 12:10:15
在我認爲你指的是@Bruno Mateus的章節中,Sebesta給出了一個隱含堆動態的javascript數組的示例,但他似乎從未解釋爲什麼數組具有這種存儲綁定。就我而言,我發現這令人困惑。 – 2016-02-11 17:17:19