2002-08-01 00:34:42 +01:00
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/css" href="styles.css" ?>
2001-06-06 20:40:57 +01:00
2003-12-30 13:33:51 +00:00
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2002-08-01 00:34:42 +01:00
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en" xml:lang = "en" >
2001-06-06 20:40:57 +01:00
< head >
2003-12-30 13:33:51 +00:00
< meta http-equiv = "content-type" content = "text/html; charset=iso-8859-1" / >
2001-06-06 20:40:57 +01:00
< title > Logtalk Glossary< / title >
2002-08-01 00:34:42 +01:00
< link rel = "stylesheet" href = "styles.css" type = "text/css" / >
2001-06-06 20:40:57 +01:00
< / head >
< body >
2003-12-30 13:33:51 +00:00
< div class = "navtop" >
< a href = "index.html" > contents< / a >
< / div >
< h1 > Glossary< / h1 >
2001-06-06 20:40:57 +01:00
< dl >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > ancestor< / strong > < a name = "ancestor" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A class or parent that contributes (via inheritance) to the definition of an object. The ancestors of an object are its class and all the superclasses of its class (in class-based hierarchies) or its parent and the ancestors of its parent (in prototype-based hierarchies).< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > category< / strong > < a name = "category" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A set of predicates directives and clauses that can be imported by any object.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > class< / strong > < a name = "class" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > An object that defines the common predicates of a set of objects (its instances).< / dd >
< dd > < dl >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > abstract class< / strong > < a name = "abstractclass" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A class that can not be instantiated. Usually used to store common predicates that are inherited by other classes.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > metaclass< / strong > < a name = "metaclass" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > The class of a class, when we see it as an object. Metaclass instances are themselves classes. In a reflexive system any metaclass is also an object.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > subclass< / strong > < a name = "subclass" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A class that is a specialization, direct or indirectly, of another class.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > superclass< / strong > < a name = "superclass" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A class from each another class is a specialization (direct or indirectly, via another class).< / dd >
< / dl > < / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > directive< / strong > < a name = "directive" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A Prolog term that affects the interpretation of Prolog code. Directives are represented using the < code > :-/1< / code > prefix functor.< / dd >
< dd > < dl >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > entity directive< / strong > < a name = "entity_directive" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A directive that affects how Logtalk entities (objects, protocols, or categories) are used or compiled.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > predicate directive< / strong > < a name = "predicate_directive" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A directive that affects how predicates are called or compiled.< / dd >
< / dl > < / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > encapsulation< / strong > < a name = "encapsulation" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > The hiding of an object implementation. This promotes software reuse by isolating users from implementation details.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > entity< / strong > < a name = "entity" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > Generic name for Logtalk compilation units: objects, categories and protocols.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > event< / strong > < a name = "event" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > The sending of a message to an object. An event can be expressed as an ordered tuple: < code > (Event, Object, Message, Sender)< / code > . Logtalk distinguish between the sending of a message - < code > before< / code > event - and the return of control to the sender - < code > after< / code > event.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > identity< / strong > < a name = "identity" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > Property of an entity that distinguish it from every other entity. In Logtalk an entity identity can be an atom or a compound term. All Logtalk entities, objects, protocols and categories share the same name space.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > inheritance< / strong > < a name = "inheritance" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > An object inherits predicate directives and clauses from other objects that it extends or specializes. If an object extends other object then we have a prototype-based inheritance. If an object specializes or instantiates another object we have a class-based inheritance.< / dd >
< dd > < dl >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > private inheritance< / strong > < a name = "private_inheritance" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > All public and protected predicates are inherited as private predicates.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > protected inheritance< / strong > < a name = "protected_inheritance" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > All public predicates are inherited as protected. No change for protected or private predicates.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > public inheritance< / strong > < a name = "public_inheritance" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > All inherited predicates maintain the declared scope.< / dd >
< / dl > < / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > instance< / strong > < a name = "instance" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > The same as object. This term is used when we want to emphasize that an object characteristics are defined by another object (its class).< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > instantiation< / strong > < a name = "instantiation" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > The process of creating a new class instance.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > message< / strong > < a name = "message" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A request for a service, sent to an object. In more logical terms, a message can be seen as a request for proof construction using an object's predicates.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > metainterpreter< / strong > < a name = "metainterpreter" > < / a > < / dt >
2004-07-09 00:48:59 +01:00
< dd > A program capable of running other programs written in the same language.< / dd >
2001-06-06 20:40:57 +01:00
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > method< / strong > < a name = "method" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > Set of predicate clauses used to answer a message sent to an object. Logtalk uses dynamic binding to find which method to run to answer a message.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > monitor< / strong > < a name = "monitor" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > Any object that is notified when a spied event occurs. The spied events can be set by the monitor or by any other object.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > object< / strong > < a name = "object" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > An entity characterized by an identity and a set of predicate directives and clauses. In Logtalk objects can be either static or dynamic, like any other Prolog code.< / dd >
< dd > < dl >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > parametric object< / strong > < a name = "parametric" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > An object whose name is a compound term containing free variables that can be used to parameterize the object predicates.< / dd >
< / dl > < / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > parent< / strong > < a name = "parent" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > An object that is extended by another object.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > predicate< / strong > < a name = "predicate" > < / a > < / dt >
2002-08-26 17:45:50 +01:00
< dd > Predicates describe what is true about the application domain. A predicate is identified by its name and number of arguments using the notation < code > < name> /< nargs> < / code > .< / dd >
2001-06-06 20:40:57 +01:00
< dd > < dl >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > local predicate< / strong > < a name = "local_predicate" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A predicate that is defined in an object (or in a category) but that is not listed in a scope directive. These predicates behave like private predicates but are invisible to the reflection methods.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > metapredicate< / strong > < a name = "metapredicate" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A predicate where one of its arguments will be called as a goal. For instance, < code > findall/3< / code > and < code > call/1< / code > are Prolog built-ins metapredicates.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > private predicate< / strong > < a name = "private_predicate" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A predicate that can only be called from the object that contains the scope directive.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > protected predicate< / strong > < a name = "protected_predicate" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A predicate that can only be called from the object containing the scope directive or from an object that inherits the predicate.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > public predicate< / strong > < a name = "public_predicate" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A predicate that can be called from any object.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > visible predicate< / strong > < a name = "visible_predicate" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A predicate that is declared for an object, a built-in method, or a Prolog or Logtalk built-in predicate.< / dd >
< / dl > < / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > profiler< / strong > < a name = "profiler" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A program that collects data about other program performance.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > protocol< / strong > < a name = "protocol" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A set of predicates directives that can be implemented by an object or a category (or extended by another protocol).< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > prototype< / strong > < a name = "protocol" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A self-describing object that may extend or be extended by other objects.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > self< / strong > < a name = "self" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > The original object that received the message under execution.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > sender< / strong > < a name = "sender" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > An object that sends a message to other object.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > specialization< / strong > < a name = "specialization" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > A class is specialized by constructing a new class that inherit its predicates and possibly add new ones.< / dd >
2003-12-30 13:33:51 +00:00
< dt class = "glossary" > < strong > this< / strong > < a name = "this" > < / a > < / dt >
2001-06-06 20:40:57 +01:00
< dd > The object that contains the predicate clause under execution.< / dd >
< / dl >
2003-12-30 13:33:51 +00:00
< div class = "navbottom" >
< / div >
2001-06-06 20:40:57 +01:00
2003-12-30 13:33:51 +00:00
< div class = "copyright" >
Copyright © < a href = "mailto:pmoura@logtalk.org" > Paulo Moura< / a > — < a href = "http://www.logtalk.org" > Logtalk.org< / a >
< / div >
2001-06-06 20:40:57 +01:00
2003-12-30 13:33:51 +00:00
< div class = "footer" >
2004-07-09 00:48:59 +01:00
< p > < span class = "bleft" > < 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 = "bright" > Last updated on: July 7, 2004< / span > < / p >
2003-12-30 13:33:51 +00:00
< / div >
< / body >
2001-06-06 20:40:57 +01:00
< / html >