Logtalk is an object-oriented logic programming language that extends and leverages the Prolog language with a feature set suitable for programming in the large. Written in highly portable code, it can use most modern Prolog implementations as a back-end compiler. As a multi-paradigm language, it includes support for both prototypes and classes, protocols (interfaces), categories (components), event-driven programming, and high-level multi-threading programming. Its distribution includes full documentation, portable libraries, a comprehensive set of portable developer tools, and a large number of programming examples to help get you started.
Logtalk can also be used as a highly portable layer on top of Prolog, as a Prolog library used together other libraries, and as a porting tool. It subsumes Prolog modules by both being able to compile modules as objects and by providing a portable implementation of the de facto common core Prolog module features.
Developer tool highlights include a unit testing framework supporting full code coverage at the clause level and determinism tests; a sophisticated diagramming tool able to illustrate library, entity, and predicate relations; a documenting tool capable of of generating API documentation in e.g. HTML and PDF; and a port profiler tool for performance analysis of actual predicate execution.
This is a near final release of the third generation of Logtalk. Only documentation and bug fixes are expected before the final, stable, release, which is expected later this month. Interested parties are invited to test their applications, specially if migrating from Logtalk 2.x.
This release fixes long standing meta-predicate execution context issues inherited from Logtalk 2.x, improves meta-predicate semantics by ensuring that meta-arguments are always called with the caller full execution context, refines and improves multifile predicate semantics, adds a new token to the structured message printing mechanism, features a new port profiler tool, improves the debugger and diagrams tools, fixes all known bugs, includes documentation and unit test updates, and SWI-Prolog, XSB, and YAP compatibility improvements. For details and a complete list of changes, please consult the release notes at: