及早求值
一种求值策略
及早求值(英語:Eager evaluation)又譯熱切求值,也被稱為貪婪求值(Greedy evaluation),是多數傳統程式語言的求值策略。
在及早求值中,表達式在它被約束到變量的時候就立即求值。這在簡單程式語言中作為低層策略是更有效率的,因為不需要建造和管理表示未求值的表達式的中介數據結構。
及早求值的優點在於節省內存和提高執行速度,比如下面的 Basic 代碼:
x = 5 + 3 * (1 + 5 ^ 2) print x print x + 2
因為第一行代碼 x = 5 + 3 * (1 + 5 ^ 2) 執行完成後 x 被賦值並存儲為 83,表達式所佔用的空間可以立即釋放掉,所以節省了內存空間。接下來的兩行代碼執行時都需要使用 x 的值,此時 x 是可以直接用於運算的數值 83 而不是需要計算的表達式 5 + 3 * (1 + 5 ^ 2),所以減少了一次計算過程,提高了執行效率。對於惰性求值的程式語言,由於記憶化(memoization)特性,求值過程與之不同。
參見
這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |