File: index.html

package info (click to toggle)
yap 5.1.1-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 16,124 kB
  • ctags: 14,650
  • sloc: ansic: 122,796; perl: 22,545; sh: 3,768; java: 1,277; makefile: 1,191; xml: 739; tcl: 624; lisp: 142; awk: 9
file content (274 lines) | stat: -rw-r--r-- 18,339 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
<?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>