The Logtalk Handbook¶
Contents
- User Manual
- Declarative object-oriented programming
- Main features
- Integration of logic and object-oriented programming
- Integration of event-driven and object-oriented programming
- Support for component-based programming
- Support for both prototype and class-based systems
- Support for multiple object hierarchies
- Separation between interface and implementation
- Private, protected and public inheritance
- Private, protected and public object predicates
- Parametric objects
- High level multi-threading programming support
- Smooth learning curve
- Compatibility with most Prolog systems and the ISO standard
- Performance
- Logtalk scope
- Nomenclature
- Messages
- Objects
- Protocols
- Categories
- Predicates
- Inheritance
- Event-driven programming
- Multi-threading programming
- Error handling
- Reflection
- Writing and running applications
- Printing messages and asking questions
- Term and goal expansion
- Documenting
- Debugging
- Performance
- Installing Logtalk
- Prolog integration and migration guide
- Reference Manual
- Grammar
- Control constructs
- Directives
- Built-in predicates
- Enumerating objects, categories and protocols
- Enumerating objects, categories and protocols properties
- Creating new objects, categories and protocols
- Abolishing objects, categories and protocols
- Objects, categories, and protocols relations
- Event handling
- Multi-threading
- Multi-threading engines
- Compiling and loading source files
- Flags
- Built-in methods
- Tutorial
- FAQ
- General
- Compatibility
- Installation
- Portability
- Programming
- Should I use prototypes or classes in my application?
- Can I use both classes and prototypes in the same application?
- Can I mix classes and prototypes in the same hierarchy?
- Can I use a protocol or a category with both prototypes and classes?
- What support is provided in Logtalk for defining and using components?
- What support is provided in Logtalk for reflective programming?
- Troubleshooting
- Using compiler options on calls to the Logtalk compiling and loading predicates do not work!
- Gecko-based browsers (e.g. Firefox) show non-rendered HTML entities when browsing XML documenting files!
- Compiling a source file results in errors or warnings but the Logtalk compiler reports a successful compilation with zero errors and zero warnings!
- Usability
- Deployment
- Performance
- Is Logtalk implemented as a meta-interpreter?
- What kind of code Logtalk generates when compiling objects? Dynamic code? Static code?
- How about message-sending performance? Does Logtalk use static binding or dynamic binding?
- Which Prolog-dependent factors are most crucial for good Logtalk performance?
- How does Logtalk performance compare with plain Prolog and with Prolog modules?
- Licensing
- Support
- Developer Tools
asdf
assertions
code_metrics
dead_code_scanner
debug_messages
debugger
diagrams
doclet
help
lgtdoc
lgtunit
- Main files
- API documentation
- Loading
- Writing, compiling, and loading unit tests
- Running unit tests
- Unit test dialects
- User-defined unit test dialects
- QuickCheck
- Skipping unit tests
- Testing non-deterministic predicates
- Testing generators
- Testing input/output predicates
- Suppressing tested predicates output
- Unit tests with timeout limits
- Setup and cleanup goals
- Test annotations
- Debugging failed unit tests
- Code coverage
- Automating running unit tests
- Utility predicates
- Exporting unit test results in xUnit XML format
- Exporting unit test results in the TAP output format
- Exporting code coverage results in XML format
- Known issues
- Other notes
make
ports_profiler
profiler
tutor
wrapper
- Glossary
- Bibliography
- Index