

The talk ends with a discussion on the problems and benefits of developing Logtalk as a portable Prolog application. This talk presents the Logtalk design goals, followed by a tutorial on Logtalk programming and some application examples. Logtalk objects are about code encapsulation and reuse, providing an alternative to Prolog module systems, and enabling natural solutions for a wide range of problems that would be awkward to solve using modules. This translates to a different, although similar, set of debugging features when compared with some of the more sophisticated Prolog debuggers. Logtalk is an object-oriented logic programming language that can use most Prolog implementations as a back-end compiler. First, unlike most Prolog debuggers, the Logtalk debugger is not a built-in feature but a regular Logtalk application using documented debugging hook predicates. Logtalk can compile Prolog modules as objects, a necessary step (but not sufficient. Since most literature, instruction, and practice focus exclusively on object-oriented languages derived from imperative languages, objects are perceived as alien to logic programming while modules are considered a natural fit. Logtalk is a declarative object-oriented logic programming language that extends and leverages the Prolog language with modern code encapsulation and code reuse. Logtalk development updates and relevant logic programming news.

Code modularization, using modules or objects, is a key feature to keep projects manageable.

Prolog affords concise, elegant, and clean solutions for many interesting problems, but is not immune to the software engineering challenges of large-scale application development. As for the options presented for M-x dap-debug, Run Configuration (maybe not the best name Im open for suggestions) prompts for a goal and executes it under the debugger so you can step through it etc., while Start Terminal asks the server to start a Prolog top-level (REPL) and connects to it in a new terminal Emacs window.
