主題
Search

偏求值


偏求值是計算機科學的一個分支,研究透過特化進行程式轉換。任何函式都可以透過將一個或多個輸入固定為特定值來進行特化。特化產生的程式的輸入數量是初始輸入數量減去值是常數的輸入數量。這些特化後的程式也稱為殘餘程式。

克萊尼s-m-n定理確立了函式特化的理論可能性。偏求值將這個想法應用於計算機程式。請注意,克萊尼定理沒有涉及特化函式的效率,而偏求值的目標是程式最佳化。

偏求值透過檢測專門依賴於值固定的特化變數的程式碼片段,並透過符號預計算這些片段來完成。殘餘程式執行速度更快,因為它缺少上述片段。

作為一個例子,考慮以下程式

 f(x,n)={1   if n=0; square(f(x,1/2n))   if n is even; xf(x,n-1)   otherwise.
(1)

此程式計算正整數的 x^n。如果 n=5,則偏求值將此程式簡化為以下形式

 f(x)=xsquare(square(x))
(2)

(Jones,1993)。

實現偏求值的符號計算適用於表示式和程式控制結構。這些符號計算涉及函式呼叫和迴圈展開。


另請參閱

克萊尼s-m-n定理

此條目由 Alex Sakharov 貢獻(作者連結

使用 探索

參考文獻

Jones, N. D.; Gomard, C. K.; 和 Sestoft, P. 偏求值和自動程式生成。 Englewood Cliffs, NJ: Prentice Hall, 1993。

在 中被引用

偏求值

請引用為

Sakharov, Alex. "偏求值。" 來自 —— 資源,由 Eric W. Weisstein 建立。 https://mathworld.tw/PartialEvaluation.html

主題分類