DLL-PROLOG is a true Prolog compiler for Windows machines, available in both 32-bit and 64-bit versions, which shares its powerful Prolog engine with the all-bells-and-whistles product that is WIN-PROLOG, but without the latter's GUI features. Instead, DLL-PROLOG works directly through a simple but very powerful API that enables it to be embedded in other applications written in C, C++ and other development languages.
The interface between DLL-PROLOG and its host application are principally text based, and the application has a choice of using either 8-bit (ISO/IEC 8859-1) or 16-bit Unicode (UTF-16LE) text as required.
All aspects of control of the DLL-PROLOG system are handled by a host application, whose job it is to process input and output from the Prolog engine in whichever way is appropriate. Despite being designed for intelligence embeddabilty in third-party applications, DLL-PROLOG nonetheless supports the entire set of non-GUI predicates that make up WIN-PROLOG, including its TCP/IP Sockets and MIDI features.
Because DLL-PROLOG uses simple APIs in place of regular input and output, it can be used to provide either an interactive system for users, or to hide entirely within a program that is automatically processing the input and output data.
For example, the image above shows DLL-PROLOG being used within another Windows application, to provide a full-fledged Prolog system! All the application does, is display output from DLL-PROLOG in the top window, and send input to DLL-PROLOG from the bottom window, whenever the users presses "Submit".
A good example of the use of DLL-PROLOG, is as the computation component of the Intelligence Server: the original version of this LPA Toolkit used WIN-PROLOG, running in an invisible window, and exchanging messages and data with the host application via shared memory files, which was very slow. Switching to DLL-PROLOG made the IS orders of magnitude faster. In other words, we've been using it for many years: it is finally being made available to the general public!
Copyright © 2020 LPA Ltd
All rights reserved