Created in the early 1970s, Prolog is a logic programming language used in artificial intelligence, abstract problem solving, design automation, computational linguistics, mathematical logic, symbolic equation solving, and biochemical structure analysis.
Although Prolog is an object-oriented language, it differs from other object-oriented languages, such as C++ and Jave, in that Prolog does a completely different job, and uses the word "object" in a different way. In Prolog, the word "object" does not refer to a data structure that can inherit variables and methods from ao class, but to things that can be represented using terms. Logical relationships are asserted, and Prolog is used to determine whether or not certain statements are true. If true, what variable bindings make them true? This leads to a declarative style of programming. Prolog is used for solving problems that involve objects and the relationships between objects.
Prolog provides only one data type, referred to as a term. All of the objects in the problem being represented, and all of the relationships between objects, are represented as types of terms.
The roots of Prolog are in first-order logic, and it was one of the early logic programming languages. The language makes use of formal logic in order to operate commands, variables, and other programming functions.
It is a descriptive programming language, as well as a prescriptive one.
Prolog remains popular today. Like many other programming languages, it exists in several implementations, free and commercial, each with its own semantic peculiarities. Its greatest use today is in research and education, with only minimal use in consumer programming.
Major implementations of Prolog include B-Prolog, Ciao, ECLIPSe, GNU Prolog, Jekejeke Prolog, Poplog Prolog, P#, Quintus Prolog, SICStus, Strawberry Prolog, SWI-Prolog, Tau Prolog, tuProlog, Visual Prolog, WIN-PROLOG, XSB, and Yap. Dialects include Edinburgh Prolog and ISO Prolog.
Among the difficulties relating to the language is that large programs are complicated because not all Prolog compilers support modules, and there are compatibility problems between the module systems of the major Prolog compilers. Portability is also a problem.
Topics related to Prolog, any of its dialects, implementations, IDEs, or tools are appropriate for this category, along with tutorials, user groups, forums, or other related sites.
Categories
CiaoLogtalk |
 
 
Recommended Resources
The ECLiPSe Constraint Programming System is an open-source software system for constraint programming applications, particularly in the areas of planning, scheduling, resource allocation, timetabling, and transport. Written in C and Prolog, it was first released in 1992 and is available under the Mozilla Public License. Its features, code examples, literature, and videos are available, along with a changelog, documentation, release notes, and download page.
http://www.eclipseclp.org/
Available for Unix, Windows, macOS, and Linux, GNU Prolog is a Prolog programming language compiler developed by Daniel Diaz in 2018 and made available under the GNU General Public License or the GNU Lesser General Public License. The compiler converts the source code into byte code that can be interpreted by a Warren Abstract Machine. An overview of the compiler and its features and history, a manual, development notes, and a download page are included.
http://www.gprolog.org/
Promising compliance with official and de facto Prolog standards, JIProlog is a Prolog interpreter, pure 100% Java, cross-platform, and open-source, which also supports built-in predicates and other features common to major Prolog systems. It is designed to be compliant with Web 3.0 and the mobile world. Its features are highlighted, a gallery of projects is included, and a support wiki is available. The latest version, an Android version, and the source code may be downloaded.
http://www.jiprolog.com/
JLog is a Prolog interpreter written in Java. Hosted on SourceForge, it is available to be downloaded, along with the source, through the GNU General Public License. Described as being Prolog in JavaScript, it promises to be fast and perfectly suited for the educational environment, including a source editor, query panels, online help, animation primitives, and a GUI debugger. Project samples are displayed, along with documentation and other support data.
https://sourceforge.net/projects/jlogic/
Hosted on SourceForge, JProlog is a complete integrated development environment (IDE) for the Prolog programming language. Written in Java, the package provides a Prolog interpreter, an easy-to-use extension package, and a full graphical IDE. The package, updates, and the source may be freely downloaded from the site. Support documentation may be downloaded, as well, and bug reports or feature requests may be made. The JProlog developer mailing list may be subscribed to.
https://sourceforge.net/projects/jprolog/
LPA provides a range of software development tools for programmers and non-programmers, including its WIN-PROLOG, based on the 386-PROLOG engine, a Prolog compiler for Windows that includes a robust engine and dedicated development environment for artificial intelligence applications. Available in both the classic, 32-bit version and a new 64-bit version, both using the same set of predicates, with complete source code and compiled Prolog Object code compatibility.
http://www.lpa.co.uk/
Prolog+CG is an implementation in Java of the standard Prolog language with extensions for handling the conceptual graph theory of John Sowa, as well as objected-oriented extensions. The implementation treats CGs as first-class data structures, allowing easy reasoning about CGs, and ontologies are also supported. The language implementation is outlined, along with documentation, installation instructions, a FAQ, support forum, and licensure information.
http://prologpluscg.sourceforge.net/
ProNTo Prolog Natural Language Tools
Offering a variety of tools, most developed by students in CSCI/LING 8570 at the University of Georgia, and a few by the instructor or others associated with the course. Many are related to WordNet, and most of them run under SWI-Prolog, a free compiler for the Prolog programming language, and should be able to be ported to other versions of Prolog. Except as otherwise noted, the programs files are available for download in a ZIP file, with documentation in PDF format.
http://ai1.ai.uga.edu/mc/pronto/
Available through a Personal License, Academic License, or Commercial (single, multi-user) License, the most recent version of SICStus Prolog may be downloaded for evaluation purposes without charge. Prices and restrictions for each are compared side-by-side. SICStus is an ISO standard compliant Prolog development system that can use the full virtual memory space for 32-bit and 64-bit architectures. The complete user’s manual is available online and in PDF format.
https://sicstus.sics.se/
Under development in the Institute of Mathematics and Informatics at the Bulgarian Academy of Sciences, and in the Faculty of Mathematics and Informatics at the University of Sofia, Strawberry Prolog is part of the Artificial Intelligence Project. The Strawberry Prolog Light edition is available as a free download under the AntiGNU license. Additions to the most recent version are highlighted, along with development notes and other information, games, and chat.
http://www.dobrev.com/
Released in 1987, SWI-Prolog is a free implementation of the Prolog programming language, available under the Simplified BSD and GNU Lesser General Public License. Stable releases, development releases, or daily builds for Windows may be freely downloaded from the site, along with the source codes and add-ons. The manual, package descriptions and other publications are available, along with tutorials for programmers with various levels of expertise.
https://www.swi-prolog.org/
Previously known as PDC Prolog and Turbo Prolog, Visual Prolog is a strongly typed object-oriented extension of the Prolog programming language. Marketed by Borland as Turbo Prolog, it is now developed and marketed by the Prolog Development Center, the Danish firm that originally designed it. With Visual Prolog, programmers can build applications for the Microsoft 32/64 platforms. A personal edition is available for free, and a commercial edition may be licensed.
https://www.visual-prolog.com/
Developed at Stony Brook University by the XSB Research Group, XSB is a dialect of the Prolog programming language that extends Prolog with tabled resolution and HiLog, an extension of Prolog that permits limited higher-order logic programming, and includes an interface to the Java programming language. Much of XSB’s software is written in the Prolog programming language, and open-source XSB Tabled Prolog System, available from SourceForge.
https://xsb.com/xsb-prolog
Commonly known as YAP, the open-source, high-performance implementation of the Prolog programming language was developed in 1985 but released under the Perl Artistic License in 2013, based on the Warren Abstract Machine, and influenced by Edinburgh Prolog. A description of the compiler is put forth, along with its features, project activity, and development notes. The files, source, and any updates may be freely downloaded from the site, and a support forum is available.
https://sourceforge.net/projects/yap/