带目标作为参数的逻辑程序变换
编程语言
2007-05-23 v2 计算机科学中的逻辑
摘要
我们考虑一种逻辑编程的简单扩展,允许变量范围在目标上,目标可作为谓词的参数。在这种语言中,我们可以编写使用目标作为数据的逻辑程序。我们提供实际证据表明,通过在变换程序时利用这一特性,可提高程序效率。我们提出了一组程序变换规则,这些规则扩展了熟悉的展开和折叠规则,允许我们操作包含作为谓词参数出现的目标的子句。为了证明这些变换规则的正确性,我们正式定义了我们扩展的逻辑编程语言的运算语义。该语义是 LD 解析的一个简单变体。当满足适当条件时,该语义与 LD 解析一致,因此使用我们扩展语言编写的程序可以被普通的 Prolog 系统运行。我们的变换规则被证明会保持运算语义和终止。
引用
@article{arxiv.cs/0307022,
title = {Transformations of Logic Programs with Goals as Arguments},
author = {Alberto Pettorossi and Maurizio Proietti},
journal= {arXiv preprint arXiv:cs/0307022},
year = {2007}
}
备注
51 pages. Full version of a paper that will appear in Theory and Practice of Logic Programming, Cambridge University Press, UK