Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Prolog
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Interfaces to other languages == Frameworks exist which can bridge between Prolog and other languages: * The [https://www.lpai.uk/int.htm LPA Intelligence Server] allows embedding [https://www.lpai.uk/win.htm LPA Prolog for Windows] in other programming languages, including: [[C (programming language)|C]], {{nowrap|[[C++]]}}, [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Visual Basic (classic)|Visual Basic]] (VB), [[Delphi (software)|Delphi]], [[.NET]], [[Lua (programming language)|Lua]], [[Python (programming language)|Python]], and others. It exploits the dedicated string data type which LPA Prolog provides * The [http://www.amzi.com/#apls Logic Server] Application Programming Interface ([[API]]) allows both the extension and embedding of Prolog in [[C (programming language)|C]], {{nowrap|[[C++]]}}, [[Java (programming language)|Java]], [[Visual Basic (classic)|Visual Basic]] (VB), [[Delphi (software)|Delphi]], [[.NET]], and any language or environment which can call a .dll or .so. It is implemented for [http://www.amzi.com/#apls Amzi! Prolog + Logic Server] but the API specification can be made available for any implementation. * [https://jpl7.org/ JPL] is a bi-directional Java Prolog bridge which ships with SWI-Prolog by default, allowing Java and Prolog to call each other (recursively). It is known to have good concurrency support and is under active development. * [http://interprolog.com/ InterProlog], a programming [[Library (computing)|library]] bridge between [[Java platform|Java]] and Prolog, implementing bi-directional predicate/method calling between both languages. Java objects can be mapped into Prolog terms and vice versa. Allows the development of [[graphical user interface]]s (GUIs) and other functions in Java while leaving logic processing in the Prolog layer. Supports [[XSB]] and [[SWI-Prolog]]. * [[Prova]] provides native syntax integration with Java, agent messaging and reaction rules. Prova positions itself as a rule-based scripting (RBS) system for middleware. The language breaks new ground in combining [[imperative programming|imperative]] and [[declarative programming]]. * [https://github.com/raydac/jprol/ PROL] An embeddable Prolog engine for Java. It includes a small IDE and a few libraries. * [https://www.gnu.org/software/gnuprologjava/ GNU Prolog for Java] is an implementation of ISO Prolog as a Java library (gnu.prolog) * [[Ciao (programming language)|Ciao]] provides interfaces to C, {{nowrap|C++}}, Java, and relational databases. * [http://sourceforge.net/projects/cs-prolog/ C#-Prolog] is a Prolog interpreter written in (managed) C#. Can easily be integrated in C# programs. Characteristics: reliable and fairly fast interpreter, command line interface, Windows-interface, builtin DCG, XML-predicates, SQL-predicates, extendible. The complete source code is available, including a parser generator that can be used for adding special purpose extensions. * [https://github.com/Trismegiste/WamBundle A Warren Abstract Machine for PHP] A Prolog compiler and interpreter in PHP 5.3. A library that can be used standalone or within Symfony2.1 framework which was translated from [http://stefan.buettcher.org/ Stephan Buettcher's] work in Java which can be found [here {{URL|http://stefan.buettcher.org/cs/wam/}}] * [http://tuprolog.unibo.it tuProlog] is a lightweight Prolog system for distributed applications and infrastructures, intentionally designed around a minimal core, to be either statically or dynamically configured by loading/unloading libraries of predicates. tuProlog natively supports multi-paradigm programming, providing a clean, seamless integration model between Prolog and mainstream object-oriented languages, namely Java, for tuProlog Java version, and any .NET-based language (C#, F#..), for tuProlog .NET version. * [https://www.swi-prolog.org/pldoc/doc_for?object=section(%27packages/janus.html%27) Janus] is a bi-directional interface between Prolog and Python using portable low-level primitives. It was initially developed for XSB by Anderson and Swift,<ref>Andersen, C. and Swift, T., 2023. The Janus System: a bridge to new prolog applications. In Prolog: The Next 50 Years (pp. 93-104). Cham: Springer Nature Switzerland.</ref> but has been adopted as a joint initiative by the XSB, Ciao and SWI-Prolog teams.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Prolog
(section)
Add topic