我对此很好奇。我必须为我的课程学习 Prolog,但我看到的大多数应用程序都是使用 C++、C# 或 Java 编写的。Prolog 编写的应用程序,对我来说是非常非常难得的应用程序。
所以,我想知道 Prolog 是如何使用和实现现实世界的应用程序的?
我对此很好奇。我必须为我的课程学习 Prolog,但我看到的大多数应用程序都是使用 C++、C# 或 Java 编写的。Prolog 编写的应用程序,对我来说是非常非常难得的应用程序。
所以,我想知道 Prolog 是如何使用和实现现实世界的应用程序的?
SWI-Prolog 网站由... SWI-prolog 提供,仅使用可用库的一小部分。
好吧,它不是商业应用程序,而是相当真实的世界。
需要付出很多努力才能使运行时能够执行 24x7 服务(主要是垃圾收集)和所需的性能可伸缩性(以及其他多线程)。
几个库是由现实世界的应用程序需求驱动的。
我曾经问过我的主管一个类似的问题,当时他正在给我们做 Prological 讲座。
他告诉我,人们并没有真正使用 prolog 来实现整个庞大的系统。相反,人们用其他语言(更理智和琐碎)编写主要部分,并将其链接到“决策程序”或用 Prolog 编写的东西。
不确定其他 Prolog 实现,我们使用的是 BProlog,它提供 C/Java 接口。
其中一个臭名昭著的例子是 Microsoft Windows NT OS 网络接口配置代码,它涉及内置的 Small Prolog 解释器。这是David Hovel 为 Dobbs 博士撰写的故事的链接。(经常被引用的微软研究院链接好像不见了。)
曾经,Prolog 被认为是一类称为专家系统的软件系统的语言。这些是交互式知识管理系统,通常带有关系数据库后端。
一般来说,基于规则的编程、解析和不同的自动推理系统在 Prolog 之外被广泛使用。
根据 Tiobe Software Index,Prolog 目前排名第 36:在 Haskell 和 FoxPro 之间:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
它是干什么用的?
我第一次听说日本(现已不复存在)的“第五代”项目:
http://en.wikipedia.org/wiki/Fifth_generation_computer
坦率地说,我真的不知道有人使用 Prolog 进行任何严肃的商业开发。