并行和并行逻辑编程

时间:2014-03-07 20:47:25

标签: concurrency parallel-processing prolog programming-languages logic-programming

Prolog的艺术的介绍中,Sterling和Shapiro将对并行性,并发性和逻辑编程的讨论推迟到另一本书。我的问题是是否有这样的资源:

  并行计算机的承诺,结合逻辑编程模型中似乎可用的并行性,导致了许多尝试,这些尝试仍在进行中,并行执行Prolog,并设计出新颖的并发编程语言基于逻辑编程计算模型。然而,这是另一本书的主题(The Prolog,p.xx)。

在Google上搜索,我发现了Mercury的Prolog和并发库的并行实现,以及数百篇研究论文和论文。但是在段落的第二部分找到资源很困难,关于基于逻辑编程语言的执行模型的并发编程和编程语言。这些主题是否有很好的资源?我对编译编写并行和并发逻辑程序的参考文献特别感兴趣。

1 个答案:

答案 0 :(得分:1)

在Prolog中,您可以同时具有非确定性和并发性。非确定性通常被描述为统一和回溯。您可以想象Prolog子句充满了隐式amb语句。鲜为人知的是逻辑编程也支持并发。

但是今天我们可能会选择逻辑编程。 Here是通过线程实现findall的示例。这也可以被修改为在集合上执行各种任务,或者甚至可以为分布式人工智能生成代理网络。

甚至还提出了一套支持Prolog内部线程的ISO标准谓词。这些谓词还包括同步和排队原语。但更重要的是,基于Prolog的轻量级Web服务器不起作用,没有多线程的Prolog系统:

ISO / IEC DTR 13211-5:2007 Prolog多线程支持
http://logtalk.org/plstd/threads.pdf