有没有可以通过针对特定查询进行优化的Prolog编译器?

4
给定一个Prolog理论和一小组可能的查询,似乎很有可能生成所需的搜索树/图,然后将其优化/减少到可以轻松转换为快速过程式程序的内容。
显然,一旦以这种方式编译,就会失去针对Prolog数据库发出通用查询的能力。 Prolog理论还必须包括某种I / O,否则缩减只会留下静态结果集。
是否有任何具有此功能的Prolog系统或编译器,或者有关该主题的相关论文?
1个回答

3
我不知道具体的编译器,但您所寻找的术语是“专用编译器”、“程序专用化”、“语义定向编译”和“部分求值”。尝试在查询中使用和不使用“Prolog”;函数式编程社区也在这个领域做了很多研究。
请注意,Prolog是图灵完备的,因此没有一种方法是完美的。已知有Prolog的子集,例如Datalog,但这些不包括I/O。我相信Datalog在Sterling和Shapiro的《Prolog艺术》中有描述。(Datalog仍然包括变量,这对于简单的基于流的I/O足够好。)
如果这样还不行,请考虑在cstheory上提问。

谢谢 - 搜索"Prolog部分求值"确实找到了一些相关的论文。 - Nick Main
1
@Nick Main:太好了。如果你想要一个“完全逻辑”的I/O方法,请务必查看Mercury。http://www.mercury.csse.unimelb.edu.au/ 祝你的项目好运! - Fred Foo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接