【问题标题】:Are there any Prolog compilers that can optimize by targeting specific queries?是否有任何 Prolog 编译器可以通过针对特定查询进行优化?
【发布时间】:2011-03-21 20:08:34
【问题描述】:

鉴于 Prolog 理论和一小组可能的查询,似乎有可能生成所需的搜索树/图,然后将其优化/简化为可以轻松转换为快速程序的东西.

显然,一旦以这种方式编译,对 Prolog 数据库发出一般查询的能力就会丢失。 Prolog 理论还必须包含某种 I/O,否则减少只会留下静态结果集。

是否有任何具有这种功能的 Prolog 系统或编译器,或者是否有任何关于该主题的相关论文?

【问题讨论】:

    标签: compiler-construction prolog


    【解决方案1】:

    我不知道任何具体的,但您正在寻找诸如“专业化编译器”、“程序专业化”、“语义方向编译”和“部分评估”之类的术语。在您的查询中尝试使用和不使用“Prolog”;函数式编程社区也对该领域进行了大量研究。

    请注意,Prolog 是图灵完备的,因此没有一种方法是完美的。 Prolog 有众所周知的子集,例如 Datalog,但这些子集不包括 I/O。我相信 Sterling 和 Shapiro 在 Prolog 的艺术 中描述了 Datalog。 (不过,Datalog 仍然包含变量,这对于简单的基于流的 I/O 来说已经足够了。)

    如果这不起作用,请考虑在cstheory 询问。

    【讨论】:

    • 谢谢 - 搜索“prolog 部分评估”确实找到了一些相关论文。
    • @Nick Main:太好了。对于 I/O 的“完全合乎逻辑”的方法,请务必查看 Mercury。 mercury.csse.unimelb.edu.au 祝你的项目好运!
    猜你喜欢
    • 2013-10-14
    • 2023-04-02
    • 1970-01-01
    • 2013-02-26
    • 2010-09-13
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多