Both logic programming in general, and Prolog in particular, have a long and fascinating history, intermingled with that of many disciplines they inherited from or catalyzed. A large body of research has been gathered over the last 50 years, supported by many Prolog implementations. Many implementations are still actively developed, while new ones keep appearing. Often, the features added by different systems were motivated by the interdisciplinary needs of programmers and implementors, yielding systems that, while sharing the "classic" core language, and, in particular, the main aspects of the ISO-Prolog standard, also depart from each other in other aspects. This obviously poses challenges for code portability. The field has also inspired many related, but quite different languages that have created their own communities. This article aims at integrating and applying the main lessons learned in the process of evolution of Prolog. It is structured into three major parts. Firstly, we overview the evolution of Prolog systems and the community approximately up to the ISO standard, considering both the main historic developments and the motivations behind several Prolog implementations, as well as other logic programming languages influenced by Prolog. Then, we discuss the Prolog implementations that are most active after the appearance of the standard: their visions, goals, commonalities, and incompatibilities. Finally, we perform a SWOT analysis in order to better identify the potential of Prolog, and propose future directions along which Prolog might continue to add useful features, interfaces, libraries, and tools, while at the same time improving compatibility between implementations.
翻译:整个逻辑,特别是Prolog的逻辑编程,总而言之,特别是Prolog的逻辑编程,都有着悠久而迷人的历史,它们与从它们继承或催化的许多学科的交界面相融合。在过去50年中,收集了大量的研究,在Prolog执行的许多支持下,收集了大量相关但相当不同的语言。许多执行仍然在积极发展,而新的执行却在不断出现。不同的系统所增加的特征往往受到程序员和执行者的跨学科需要的驱动,产生的系统在分享“经典”核心语言的同时,特别是标准化组织-Prolog标准的主要方面,在其他方面也相互背离。这显然给代码的可移动性带来了挑战。这个领域也激发了许多相关但相当不同的语言,这些语言创造了自己的社区。这篇文章的目的是整合和应用在Prolog演进过程中学到的主要经验教训。它分为三个主要部分。首先,我们概述了Prolog系统和社区的演变情况,大致符合ISO标准,考虑到主要的历史发展动态以及若干Prolog执行过程背后的动机,以及其他一些逻辑语言在Prolog Prolog Prolog 的编程之后,我们接着讨论了一种积极的目标,然后讨论如何执行。