
This article aims at integrating and applying the main lessons learned in the process of evolution of Prolog. The field has also inspired many related, but quite different languages that have created their own communities. This obviously poses challenges for code portability. 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, in particular, the main aspects of the ISO-Prolog standard, also depart from each other in other aspects. Many implementations are still actively developed, while new ones keep appearing. A large body of research has been gathered over the last 50 years, supported by many Prolog implementations.
#Logtalk prolog portable
Problems and benefits of developing Logtalk as a portable Prolog application.īoth 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. Goals, followed by a tutorial on Logtalk programming and some application examples. Solutions for a wide range of problems that would be awkward to solve using modules. Logtalk objects are about code encapsulation and reuse, providing an alternative to Prolog module systems, and enabling natural


Logtalk is an object-oriented logic programming language that can use most Prolog implementations as a back-end compiler. Since most literature, instruction, and practice focus exclusively on object-oriented languages derivedįrom imperative languages, objects are perceived as alien to logic programming while modules are considered a natural fit. Code modularization, using modules or objects, is a key feature to keep Prolog affords concise, elegant, and clean solutions for many interesting problems, but is not immune to the software engineeringĬhallenges of large-scale application development.
