在 Prolog的艺术的介绍中,Sterling和Shapiro将对并行性,并发性和逻辑编程的讨论推迟到另一本书。我的问题是是否有这样的资源:
并行计算机的承诺,结合逻辑编程模型中似乎可用的并行性,导致了许多尝试,这些尝试仍在进行中,并行执行Prolog,并设计出新颖的并发编程语言基于逻辑编程计算模型。然而,这是另一本书的主题(The Prolog,p.xx)。
在Google上搜索,我发现了Mercury的Prolog和并发库的并行实现,以及数百篇研究论文和论文。但是在段落的第二部分找到资源很困难,关于基于逻辑编程语言的执行模型的并发编程和编程语言。这些主题是否有很好的资源?我对编译和编写并行和并发逻辑程序的参考文献特别感兴趣。
答案 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