Prolog Logtalk HTML Shell Common Lisp XSLT Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.github Add configuration file for GitHub DCO application integration Aug 3, 2018
adapters Add support for defining additional Prolog built-in predicates for li… Jul 23, 2018
coding Include fixes from maintainers to the Gtksourceview support Aug 9, 2018
contributions Fix missing meta-predicate directive in the `verdi_neruda` contribution May 7, 2018
core Fix lambda parameters bindings escaping lambda expressions when used … Aug 16, 2018
docs Add predicates `maybe_call/1-2` to the `random` library Aug 14, 2018
examples Update lambda benchmarks results in lambda examples sample queries files Aug 16, 2018
integration Improve SWI-Prolog integration May 28, 2018
library Add predicates `maybe_call/1-2` to the `random` library Aug 14, 2018
man/man1 Update XSB integration scripts man pages Jun 29, 2018
manuals Improve reference manual description of the `^^/1` control construct Aug 13, 2018
paths Add `super_calls` example showing that "super" calls preserve "self" Aug 13, 2018
scratch Update Logtalk website URL for HTTPS Jan 22, 2018
scripts Update version to 3.20.0-b01 in preparation for the next release Aug 2, 2018
tests Add predicates `maybe_call/1-2` to the `random` library Aug 14, 2018
tools Improve handling of test option goals Aug 1, 2018
.gitignore First version of the IntelliJ plugin (#33) Feb 2, 2017
.travis.yml Update Travis builds to run all tests except the Prolog compliance tests Oct 29, 2017 Add note on Textadept Logtalk support contributed by Michael T. Richter Jul 26, 2018
BIBLIOGRAPHY.bib Update version to 3.20.0-b01 in preparation for the next release Aug 2, 2018 More strict and simple rules for major code and docs contributions Jun 1, 2018 Fix typo in the customization instructions May 9, 2018 Minor cleanup of the manual installation instructions May 19, 2018
LICENSE.txt Move Logtalk to the Apache License 2.0 Sep 12, 2015
NOTICE.txt Add `edcg` library and examples (port of Peter Van Roy implementation) May 30, 2018 Improve the quick start guide May 9, 2018 Update documentation section in the readme file Aug 4, 2018 Add predicates `maybe_call/1-2` to the `random` library Aug 14, 2018 Update Logtalk website URL for HTTPS Jan 22, 2018
VERSION.txt Fix lambda parameters bindings escaping lambda expressions when used … Aug 16, 2018
loader-sample.lgt Minor documentation updates Apr 3, 2018
settings-sample.lgt Fix some code layout and coding guidelines typos Feb 14, 2018
tester-sample.lgt Update Logtalk website URL for HTTPS Jan 22, 2018
tests-sample.lgt Update Logtalk website URL for HTTPS Jan 22, 2018

This file is part of Logtalk
Copyright 1998-2018 Paulo Moura

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Build Status Join the chat at


Logtalk is a declarative object-oriented logic programming language that extends and leverages the Prolog language with a feature set suitable for programming in the large. Logtalk supports modern code encapsulation and code reuse mechanisms without compromising the declarative programming features of Prolog.

Logtalk is implemented as a trans-compiler in highly portable code and can use most modern and standards compliant Prolog implementations as a backend compiler.

As a multi-paradigm language, Logtalk includes support for both prototypes and classes, protocols (interfaces), categories (components and hot-patching), event-driven programming, coinduction, lambda expressions, and high-level multi-threading programming. Logtalk uses standard Prolog syntax with the addition of some operators and directives for a smooth learning path.

Logtalk is distributed under a commercial friendly license and includes full documentation, portable libraries, portable developer tools, and a large number of programming examples to help get you started.

Logtalk website

The latest stable release of the Logtalk is always available at the URL:

At this address you can also find additional documentation and information about Logtalk.


Logtalk can be installed either from sources by running a couple of shell scripts or by using an installer for your operating system. For manual installation, see the file for detailed instructions.

See the user manual for a description of the source files organization and for using instructions (to read the user manual open the index file in a web browser).

If you are upgrading from a previous Logtalk version, please check the file for instructions on how to upgrade your programs or your custom adapter files to run under this new version.


The file provides detailed instructions for customizing the Logtalk installation and working environment.


The file provides quick instructions for those of you in a hurry to run Logtalk, provided that your favorite Prolog compiler is supported and installed.


A quick and highly recommended introduction for users comfortable with Prolog and with general knowledge about object-oriented programming is available at the Learn X in Y minutes website.

The reference and user manuals are provided in XHTML and PDF formats and can be found in the manuals directory. They are also available online at:

The file contains descriptions of all Logtalk updates since the first public version. Check it carefully if you have been using a previous Logtalk version.

The API documentation for the core, library, tools, and contributions entities is provided in XHTML format and can be found in the docs directory and also available online at:

Most directories include or NOTES.txt documentation files.

On POSIX systems, there's also a man page for most shell scripts. A list of these scripts can be generated using the apropos logtalk command. HTML versions of the man pages are also available at the Logtalk website.

Additional useful information is available in the official repository wiki at GitHub.


To register as a Logtalk user either use the registration form found at the Logtalk web site:

or send an email message to:

with the following information:

email address, first and last name, organization, organization type (education, commercial, government, ...), Prolog compilers you use (optional), platforms (mac, pc, unix, ...) (optional), projects where you intend to use Logtalk (optional)


Support channels include:

For more information on support options, please consult the web page:


If you find Logtalk useful, please include a citation on your publications. Consult the BIBLIOGRAPHY.bib file for bibliographic references in BibTeX format (the Logtalk user and reference manuals and the 2003 PhD thesis on Logtalk are good choices).


Contributions are most welcome! See the file for details.


Logtalk is copyrighted by Paulo Moura and made available under the Apache License 2.0. See the LICENSE.txt file for the license terms. The copyright notice and license applies to all files in this release unless otherwise explicitly stated. See the NOTICE.txt for detailed copyright information.

Some files that are part of the Logtalk distribution are distributed using a different license and/or are copyrighted by a Logtalk contributor.

Some of the included examples are adaptations to Logtalk of Prolog examples found elsewhere (e.g. in manuals, tutorials, books, and public mailing list discussions). The copyright in the examples original code should be assumed to belong to the original authors.

Logtalk is a registered trademark of Paulo Moura.