This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/manuals/userman/index.html

275 lines
18 KiB
HTML
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="application/xml+xhtml; charset=utf-8" />
<title>Logtalk: User Manual</title>
<link rel="stylesheet" href="../screen.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="../print.css" type="text/css" media="print"/>
</head>
<body>
<div class="top-left">Logtalk user manual</div>
<div class="top-right">Index</div>
<div class="bottom-left"><span class="page"/></div>
<div class="bottom-right"><span class="page"/></div>
<div class="navtop"><a href="../index.html">contents</a></div>
<h1>User Manual</h1>
<ul>
<li><a href="#features">Logtalk features</a></li>
</ul>
<ul>
<li><a href="#messages">Message sending</a></li>
<li><a href="#objects">Objects</a></li>
<li><a href="#protocols">Protocols</a></li>
<li><a href="#categories">Categories</a></li>
<li><a href="#predicates">Predicates</a></li>
<li><a href="#inheritance">Inheritance</a></li>
<li><a href="#events">Event-driven programming</a></li>
<li><a href="#errors">Error handling</a></li>
</ul>
<ul>
<li><a href="#documenting">Documenting Logtalk programs</a></li>
</ul>
<ul>
<li><a href="#installing">Installing Logtalk</a></li>
<li><a href="#running">Running and debugging Logtalk programs</a></li>
<li><a href="#programming">Programming in Logtalk</a></li>
</ul>
<h2><a id="features" href="features.html">Logtalk features</a></h2>
<dl>
<dt><a id="features_logic" href="features.html#logic">Integration of logic and object-oriented programming</a></dt>
<dt><a id="features_events" href="features.html#events">Integration of event-driven and object-oriented programming</a></dt>
<dt><a id="features_categories" href="features.html#categories">Support for component-based programming</a></dt>
<dt><a id="features_both" href="features.html#both">Support for both prototype and class-based systems</a></dt>
<dt><a id="features_multiple" href="features.html#multiple">Support for multiple object hierarchies</a></dt>
<dt><a id="features_interface" href="features.html#interface">Separation between interface and implementation</a></dt>
<dt><a id="features_inheritance" href="features.html#inheritance">Private, protected, and public inheritance</a></dt>
<dt><a id="features_predicates" href="features.html#predicates">Private, protected, and public object predicates</a></dt>
<dt><a id="features_parametric" href="features.html#parametric">Parametric objects</a></dt>
<dt><a id="features_learning" href="features.html#learning">Smooth learning curve</a></dt>
<dt><a id="features_compatibility" href="features.html#compatibility">Compatibility with most Prologs and the ISO standard</a></dt>
<dt><a id="features_performance" href="features.html#performance">Performance</a></dt>
</dl>
<h2><a id="messages" href="messages.html">Message sending</a></h2>
<dl>
<dt><a id="messages_operators" href="messages.html#operators">Operators used in message sending</a></dt>
<dt><a id="messages_sending" href="messages.html#sending">Sending a message to an object</a></dt>
<dt><a id="messages_broadcasting" href="messages.html#broadcasting">Broadcasting</a></dt>
<dt><a id="messages_self" href="messages.html#self">Sending a message to <em>self</em></a></dt>
<dt><a id="messages_super" href="messages.html#super">Calling an overridden predicate definition</a></dt>
<dt><a id="messages_events" href="messages.html#events">Message sending and event generation</a></dt>
<dt><a id="messages_performance" href="messages.html#performance">Message sending performance</a></dt>
</dl>
<h2><a id="objects" href="objects.html">Objects</a></h2>
<dl>
<dt><a id="objects_kind" href="objects.html#kind">Objects, prototypes, classes, and instances</a></dt>
<dt><a id="objects_defining" href="objects.html#defining">Defining a new object</a></dt>
<dt><a id="objects_parametric" href="objects.html#parametric">Parametric objects</a></dt>
<dt><a id="objects_finding" href="objects.html#finding">Finding defined objects</a></dt>
<dt><a id="objects_creating" href="objects.html#creating">Creating a new object in runtime</a></dt>
<dt><a id="objects_abolishing" href="objects.html#abolishing">Abolishing an existing object</a></dt>
<dt><a id="objects_directives" href="objects.html#directives">Object directives</a></dt>
<dd><a id="objects_initialization" href="objects.html#initialization">Object initialization</a></dd>
<dd><a id="objects_dynamic" href="objects.html#dynamic">Dynamic objects</a></dd>
<dd><a id="objects_dependencies" href="objects.html#dependencies">Object dependencies</a></dd>
<dd><a id="objects_documentation" href="objects.html#documentation">Object documentation</a></dd>
<dt><a id="objects_relationships" href="objects.html#relationships">Object relationships</a></dt>
<dt><a id="objects_properties" href="objects.html#properties">Object properties</a></dt>
<dt><a id="objects_user" href="objects.html#user">The pseudo-object user</a></dt>
<dt><a id="objects_debugger" href="objects.html#debugger">The pseudo-object debugger</a></dt>
</dl>
<h2><a id="protocols" href="protocols.html">Protocols</a></h2>
<dl>
<dt><a id="protocols_defining" href="protocols.html#defining">Defining a new protocol</a></dt>
<dt><a id="protocols_finding" href="protocols.html#finding">Finding defined protocols</a></dt>
<dt><a id="protocols_creating" href="protocols.html#creating">Creating a new protocol in runtime</a></dt>
<dt><a id="protocols_abolishing" href="protocols.html#abolishing">Abolishing an existing protocol</a></dt>
<dt><a id="protocols_directives" href="protocols.html#directives">Protocol directives</a></dt>
<dd><a id="protocols_initialization" href="protocols.html#initialization">Protocol initialization</a></dd>
<dd><a id="protocols_dynamic" href="protocols.html#dynamic">Dynamic protocols</a></dd>
<dd><a id="protocols_documentation" href="protocols.html#documentation">Protocol documentation</a></dd>
<dt><a id="protocols_relationships" href="protocols.html#relationships">Protocol relationships</a></dt>
<dt><a id="protocols_properties" href="protocols.html#properties">Protocol properties</a></dt>
<dt><a id="protocols_implementing" href="protocols.html#properties">Implementing protocols</a></dt>
</dl>
<h2><a id="categories" href="categories.html">Categories</a></h2>
<dl>
<dt><a id="categories_defining" href="categories.html#defining">Defining a new category</a></dt>
<dt><a id="categories_finding" href="categories.html#finding">Finding defined categories</a></dt>
<dt><a id="categories_creating" href="categories.html#creating">Creating a new category in runtime</a></dt>
<dt><a id="categories_abolishing" href="categories.html#abolishing">Abolishing an existing category</a></dt>
<dt><a id="categories_directives" href="categories.html#directives">Category directives</a></dt>
<dd><a id="categories_initialization" href="categories.html#initialization">Category initialization</a></dd>
<dd><a id="categories_dynamic" href="categories.html#dynamic">Dynamic categories</a></dd>
<dd><a id="categories_dependencies" href="categories.html#dependencies">Category dependencies</a></dd>
<dd><a id="categories_documentation" href="categories.html#documentation">Category documentation</a></dd>
<dt><a id="categories_relationships" href="categories.html#relationships">Category relationships</a></dt>
<dt><a id="categories_properties" href="categories.html#properties">Category properties</a></dt>
<dt><a id="categories_importing" href="categories.html#importing">Importing categories</a></dt>
</dl>
<h2><a id="predicates" href="predicates.html">Predicates</a></h2>
<dl>
<dt><a id="predicates_declaring" href="predicates.html#declaring">Declaring predicates</a></dt>
<dd><a id="predicates_scope" href="predicates.html#scope">Scope directives</a></dd>
<dd><a id="predicates_mode" href="predicates.html#mode">Mode directive</a></dd>
<dd><a id="predicates_meta" href="predicates.html#meta">Meta-predicate directive</a></dd>
<dd><a id="predicates_discontiguous" href="predicates.html#discontiguous">Discontiguous directive</a></dd>
<dd><a id="predicates_dynamic" href="predicates.html#dynamic">Dynamic directive</a></dd>
<dd><a id="predicates_op" href="predicates.html#op">Operator directive</a></dd>
<dd><a id="predicates_uses" href="predicates.html#uses">Uses directive</a></dd>
<dd><a id="predicates_alias" href="predicates.html#alias">Alias directive</a></dd>
<dd><a id="predicates_info" href="predicates.html#info">Documenting directive</a></dd>
<dt><a id="predicates_defining" href="predicates.html#defining">Defining predicates</a></dt>
<dd><a id="predicates_objects" href="predicates.html#objects">Object predicates</a></dd>
<dd><a id="predicates_categories" href="predicates.html#categories">Category predicates</a></dd>
<dd><a id="predicates_metadef" href="predicates.html#metadef">Meta-predicates</a></dd>
<dd><a id="predicates_dcgs" href="predicates.html#dcgs">Definite clause grammars</a></dd>
<dt><a id="predicates_methods" href="predicates.html#methods">Built-in object predicates (methods)</a></dt>
<dd><a id="predicates_context" href="predicates.html#context">Execution context methods</a></dd>
<dd><a id="predicates_database" href="predicates.html#database">Database methods</a></dd>
<dd><a id="predicates_solutions" href="predicates.html#solutions">All solutions methods</a></dd>
<dd><a id="predicates_reflection" href="predicates.html#reflection">Reflection methods</a></dd>
<dd><a id="predicates_parsing" href="predicates.html#parsing">Definite clause grammar parsing methods</a></dd>
<dd><a id="predicates_expanding" href="predicates.html#expanding">Term expansion methods</a></dd>
<dt><a id="predicates_properties" href="predicates.html#properties">Predicate properties</a></dt>
<dt><a id="predicates_finding" href="predicates.html#finding">Finding declared predicates</a></dt>
<dt><a id="predicates_prolog" href="predicates.html#prolog">Calling Prolog built-in predicates</a></dt>
<dd><a id="predicates_prolog_meta" href="predicates.html#prolog_meta">Calling Prolog non-standard meta-predicates</a></dd>
</dl>
<h2><a id="inheritance" href="inheritance.html">Inheritance</a></h2>
<dl>
<dt><a id="inheritance_protocol" href="inheritance.html#protocol">Protocol inheritance</a></dt>
<dd><a id="inheritance_protocol_prototype" href="inheritance.html#protocol_prototype">Search order for prototype hierarchies</a></dd>
<dd><a id="inheritance_protocol_class" href="inheritance.html#protocol_class">Search order for class hierarchies</a></dd>
<dt><a id="inheritance_implementation" href="inheritance.html#implementation">Implementation inheritance</a></dt>
<dd><a id="inheritance_implementation_prototype" href="inheritance.html#implementation_prototype">Search order for prototype hierarchies</a></dd>
<dd><a id="inheritance_implementation_class" href="inheritance.html#implementation_class">Search order for class hierarchies</a></dd>
<dd><a id="inheritance_implementation_redefinition" href="inheritance.html#implementation_redefinition">Inheritance versus predicate redefinition</a></dd>
<dt><a id="inheritance_types" href="inheritance.html#types">Public, protected, and private inheritance</a></dt>
<dt><a id="inheritance_composition" href="inheritance.html#composition">Composition versus multiple inheritance</a></dt>
</dl>
<h2><a id="events" href="events.html">Event-driven programming</a></h2>
<dl>
<dt><a id="events_definitions" href="events.html#definitions">Definitions</a></dt>
<dd><a id="events_event" href="events.html#event">Event</a></dd>
<dd><a id="events_monitor" href="events.html#monitor">Monitor</a></dd>
<dt><a id="events_generation" href="events.html#generation">Event generation</a></dt>
<dt><a id="events_communicating" href="events.html#communicating">Communicating events to monitors</a></dt>
<dt><a id="events_performance" href="events.html#performance">Performance concerns</a></dt>
<dt><a id="events_semantics" href="events.html#semantics">Monitor semantics</a></dt>
<dt><a id="events_order" href="events.html#order">Activation order of monitors</a></dt>
<dt><a id="events_handling" href="events.html#handling">Event handling</a></dt>
<dd><a id="events_finding" href="events.html#finding">Finding defined events</a></dd>
<dd><a id="events_defining" href="events.html#defining">Defining new events</a></dd>
<dd><a id="events_abolishing" href="events.html#abolishing">Abolishing defined events</a></dd>
<dd><a id="events_handlers" href="events.html#handlers">Defining event handlers</a></dd>
</dl>
<h2><a id="errors" href="errors.html">Error handling</a></h2>
<dl>
<dt><a id="errors_compiler" href="errors.html#compiler">Compiler warnings and errors</a></dt>
<dd><a id="errors_wunknown" href="errors.html#wunknown">Unknown entities</a></dd>
<dd><a id="errors_wsingletons" href="errors.html#wsingletons">Singleton variables</a></dd>
<dd><a id="errors_wprolog" href="errors.html#wprolog">Redefinition of Prolog built-in predicates</a></dd>
<dd><a id="errors_wpredicates" href="errors.html#wpredicates">Redefinition of Logtalk built-in predicates</a></dd>
<dd><a id="errors_wmethods" href="errors.html#wmethods">Redefinition of Logtalk built-in methods</a></dd>
<dd><a id="errors_wmisspell" href="errors.html#wmisspell">Misspell calls of local predicates</a></dd>
<dd><a id="errors_wportability" href="errors.html#wportability">Portability warnings</a></dd>
<dd><a id="errors_wothers" href="errors.html#wothers">Other warnings and errors</a></dd>
<dt><a id="errors_runtime" href="errors.html#runtime">Runtime errors</a></dt>
<dd><a id="errors_predicates" href="errors.html#unknownMessage">Logtalk built-in predicates</a></dd>
<dd><a id="errors_methods" href="errors.html#methods">Logtalk built-in methods</a></dd>
<dd><a id="errors_sending" href="errors.html#sending">Message sending</a></dd>
</dl>
<h2><a id="documenting" href="documenting.html">Documenting Logtalk programs</a></h2>
<dl>
<dt><a id="documenting_directives" href="documenting.html#directives">Documenting directives</a></dt>
<dd><a id="documenting_entity" href="documenting.html#entity">Entity directives</a></dd>
<dd><a id="documenting_predicate" href="documenting.html#predicate">Predicate directives</a></dd>
<dt><a id="documenting_processing" href="documenting.html#processing">Processing and viewing documenting files</a></dt>
</dl>
<h2><a id="installing" href="installing.html">Installing Logtalk</a></h2>
<dl>
<dt><a id="installing_installing" href="installing.html#installing">Installing Logtalk</a></dt>
<dt><a id="installing_requirements" href="installing.html#requirements">Hardware &amp; software requirements</a></dt>
<dd><a id="installing_computer" href="installing.html#computer">Computer and operating system</a></dd>
<dd><a id="installing_compiler" href="installing.html#compiler">Prolog compiler</a></dd>
<dt><a id="installing_organization" href="installing.html#organization">Directories and files organization</a></dt>
<dd><a id="installing_configs" href="installing.html#configs">Configuration files</a></dd>
<dd><a id="installing_compiler" href="installing.html#compiler">Logtalk compiler and runtime</a></dd>
<dd><a id="installing_library" href="installing.html#library">Library</a></dd>
<dd><a id="installing_examples" href="installing.html#examples">Examples</a></dd>
<dd><a id="installing_entities" href="installing.html#entities">Logtalk source files</a></dd>
</dl>
<h2><a id="running" href="running.html">Running and debugging Logtalk programs</a></h2>
<dl>
<dt><a id="running_running" href="running.html#running">Running a Logtalk session</a></dt>
<dd><a id="running_starting" href="running.html#starting">Starting Logtalk</a></dd>
<dd><a id="running_compiling" href="running.html#compiling">Compiling and loading your programs</a></dd>
<dd><a id="running_flags" href="running.html#flags">Compiler flags</a></dd>
<dd><a id="running_smart" href="running.html#smart">Smart compilation of source files</a></dd>
<dt><a id="running_batch" href="running.html#batch">Using Logtalk for batch processing</a></dt>
<dt><a id="running_debugging" href="running.html#debugging">Debugging Logtalk programs</a></dt>
<dd><a id="running_debugmode" href="running.html#debugmode">Compiling objects in debug mode</a></dd>
<dd><a id="running_boxmodel" href="running.html#boxmodel">Logtalk Procedure Box model</a></dd>
<dd><a id="running_spypoints" href="running.html#spypoints">Defining spy points</a></dd>
<dd><a id="running_trace" href="running.html#trace">Tracing program execution</a></dd>
<dd><a id="running_debug" href="running.html#debug">Debugging using spy points</a></dd>
<dd><a id="running_commands" href="running.html#commands">Debugging commands</a></dd>
</dl>
<h2><a id="programming" href="programming.html">Programming in Logtalk</a></h2>
<dl>
<dt><a id="programming_writing" href="programming.html#writing">Writing programs</a></dt>
<dd><a id="programming_source_files" href="programming.html#source_files">Source files</a></dd>
<dd><a id="programming_loaders" href="programming.html#loaders">Loader utility files</a></dd>
<dd><a id="programming_libraries" href="programming.html#libraries">Libraries of source files</a></dd>
<dd><a id="programming_portability" href="programming.html#portability">Portable programs</a></dd>
<dd><a id="programming_errors" href="programming.html#errors">Avoiding common errors</a></dd>
<dd><a id="programming_style" href="programming.html#style">Coding style guidlines</a></dd>
<dt><a id="programming_scope" href="programming.html#scope">Logtalk scope</a></dt>
</dl>
<div class="footer">
<div class="navbottom"><a href="../glossary.html">glossary</a></div>
<div class="copyright">Copyright &copy; <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> &mdash; <a href="http://www.logtalk.org">Logtalk.org</a></div>
<div class="footnote">
<span class="validators"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span>
<span class="date">Last updated on: March 18, 2006</span>
</div>
</div>
</body>
</html>