话题
搜索

部分评估


部分评估是通过专业化研究程序转换的计算机科学的一个分支。任何函数都可以通过将其一个或多个输入固定为特定值来进行专门化。专门化产生的程序输入数是初始输入数减去其值为常量的输入数。这些专门的程序也称为剩余程序。

克莱恩' --n个定理确立了职能专业化的理论可能性。部分评估将这种思想应用于计算机程序。请注意,克莱恩定理并没有解决专业功能的效率,而部分评估的目标是程序优化。

部分求值是通过检测仅依赖于值固定的专用变量的代码片段,以及通过符号化预计算这些片段来完成的。剩余程序将运行得更快,因为它缺少上述片段。

例如,考虑一下程序

 如果n=0,f(x,n)={1;如果n是偶数,则为平方(f(x)1/2n);否则为xf(x、n-1)。
(1)

此程序计算x ^n个对于正整数。如果n=5个,则部分评估将此程序简化为以下内容:

 f(x)=x平方(平方(x))
(2)

(琼斯)等。1993).

实现部分求值的符号计算适用于表达式和程序控制结构。这些符号计算涉及函数调用和循环展开。


另请参见

克莱恩' --n个定理

此条目由贡献亚历克斯萨哈罗夫(作者链接)

与Wolfram一起探索| Alpha

工具书类

琼斯,N.D。;Gomard,C.K。;和P·塞斯托夫特。部分评估和程序自动生成。新泽西州恩格尔伍德克利夫斯:普伦蒂斯霍尔,1993年。

参考Wolfram | Alpha

部分评估

引用如下:

亚历克斯·萨哈罗夫.“部分评估”。来自数学世界--Wolfram Web资源,创建人埃里克韦斯特因.https://mathworld.wolfram.com/PartialEvaluation.html

主题分类