git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1357 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			171 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
=================================================================
 | 
						|
Logtalk - Object oriented extension to Prolog
 | 
						|
Release 2.25.1
 | 
						|
 | 
						|
Copyright (c) 1998-2005 Paulo Moura.  All Rights Reserved.
 | 
						|
=================================================================
 | 
						|
 | 
						|
 | 
						|
This folder contains several examples of Logtalk programs. A brief 
 | 
						|
description of each example is included below.
 | 
						|
 | 
						|
Each example folder contains a NOTES file and a loader helper file which 
 | 
						|
may be used to load all the example entities. In addition, most examples 
 | 
						|
contain a SCRIPT file with instructions on how to load the example and 
 | 
						|
sample queries for your to try.
 | 
						|
 | 
						|
Most of these examples need objects, protocols, and categories which are 
 | 
						|
defined in the Logtalk standard library or in other examples. See the NOTES 
 | 
						|
files inside the library folder, plus the NOTES and SCRIPT files inside each 
 | 
						|
example folder).
 | 
						|
 | 
						|
Some examples may redefine objects already loaded from other examples.
 | 
						|
You may want to restart Logtalk after trying each example.
 | 
						|
 | 
						|
Some of the examples code have been adopted from public available Prolog 
 | 
						|
code or from known Prolog text books and are copyrighted by the respective 
 | 
						|
authors.
 | 
						|
 | 
						|
These are programming examples, meaning that you should study the source 
 | 
						|
files to fully understand them.
 | 
						|
 | 
						|
All examples are formatted using four spaces tabs.
 | 
						|
 | 
						|
By default, compiling an example generates a .xml documenting file for each 
 | 
						|
compiled entity (object, category, or protocol). See the xml folder for 
 | 
						|
instructions on how to browse the .xml files for on-line reading or how to 
 | 
						|
convert the files to a print-ready format such as PDF.
 | 
						|
 | 
						|
 | 
						|
Here is a short description of each included example:
 | 
						|
 | 
						|
aliases
 | 
						|
	example of using the alias/3 predicate directive to provide alternative 
 | 
						|
	names to inherited predicates in order to improve readability
 | 
						|
 | 
						|
assignvars
 | 
						|
	example of using assignable variables in the context of parametric objects
 | 
						|
 | 
						|
benchmarks
 | 
						|
	simple benchmarks for helping measuring performance of Logtalk message 
 | 
						|
	sending between Prolog compilers and for comparing performance of message 
 | 
						|
	sending calls with predicate calls in plain Prolog
 | 
						|
 | 
						|
birds
 | 
						|
	bird identification expert system
 | 
						|
	(example adopted from the Adventure in Prolog Amzi! book)
 | 
						|
 | 
						|
bricks
 | 
						|
	example of representation and handling of relations using events
 | 
						|
 | 
						|
classvars
 | 
						|
	example of implementation of class variables
 | 
						|
	(as found in Smalltalk; i.e. shared instance variables)
 | 
						|
 | 
						|
dcgs
 | 
						|
	examples of using DCG rules inside objects and categories
 | 
						|
 | 
						|
diamonds
 | 
						|
	examples of problems and solutions for the "diamond problem"
 | 
						|
	(multi-inheritance conflicts and ambiguities)
 | 
						|
 | 
						|
dynpred
 | 
						|
	example of using some of the built-in database handling methods
 | 
						|
 | 
						|
encodings
 | 
						|
	very simple example of using the new, experimental encoding/1 
 | 
						|
	directive (requires Logtalk to be run with the SWI-Prolog compiler)
 | 
						|
 | 
						|
engines
 | 
						|
	example of category composition (importation of categories by other 
 | 
						|
	categories) using car engines
 | 
						|
 | 
						|
errors
 | 
						|
	example showing the Logtalk compiler warning and error reporting
 | 
						|
 | 
						|
hello_world
 | 
						|
	the unavoidable hello world programming example
 | 
						|
 | 
						|
inheritance
 | 
						|
	examples of public, protected, and private inheritance using both 
 | 
						|
	prototypes and classes/instances
 | 
						|
 | 
						|
instmethods
 | 
						|
	example of instance defined methods
 | 
						|
 | 
						|
lo
 | 
						|
	examples adopted from the Francis G. McCabe L&O system
 | 
						|
 | 
						|
logic
 | 
						|
	example of a translator of first-order predicate logic propositions 
 | 
						|
	to conjunctive normal form and to clausal form
 | 
						|
 | 
						|
lpa
 | 
						|
	examples adopted from the LPA Prolog++ system
 | 
						|
 | 
						|
metapredicates
 | 
						|
	example of using metapredicates in Logtalk objects
 | 
						|
 | 
						|
metainterpreters
 | 
						|
	some examples of simple metainterpreters
 | 
						|
 | 
						|
mi
 | 
						|
	multi-inheritance examples
 | 
						|
 | 
						|
miscellaneous
 | 
						|
	unsorted examples
 | 
						|
 | 
						|
msglog
 | 
						|
	example of using events and monitors for recording, replaying, and 
 | 
						|
	printing user messages
 | 
						|
 | 
						|
operators
 | 
						|
	example of using operators local to objects and categories
 | 
						|
 | 
						|
parametric
 | 
						|
	simple example of parametric objects
 | 
						|
 | 
						|
poem
 | 
						|
	examples adopted from the Ben Staveley-Taylor POEM system
 | 
						|
 | 
						|
points
 | 
						|
	example adopted from SICStus Objects documentation
 | 
						|
 | 
						|
polygons
 | 
						|
	example of representation and handling of relations using events
 | 
						|
 | 
						|
profiling
 | 
						|
	examples of using of events and monitors to implement profilers
 | 
						|
 | 
						|
puzzles
 | 
						|
	several examples of logical puzzles
 | 
						|
 | 
						|
reflection
 | 
						|
	example of a simple class-based reflective system
 | 
						|
 | 
						|
relations
 | 
						|
	objects implementing predicates for dealing with relations and 
 | 
						|
	constrained relations between objects
 | 
						|
 | 
						|
roots
 | 
						|
	objects, protocols and categories needed by most of the other examples
 | 
						|
 | 
						|
searching
 | 
						|
	state-space searching framework
 | 
						|
	(example adopted from Ivan Bratko's "Prolog Programming for Artificial 
 | 
						|
	Intelligence" book)
 | 
						|
 | 
						|
shapes
 | 
						|
	geometric shapes implemented as both a prototype hierarchy and a class 
 | 
						|
	hierarchy
 | 
						|
 | 
						|
sicstus
 | 
						|
	examples adopted from SICStus Objects documentation
 | 
						|
 | 
						|
symdiff
 | 
						|
	example of using parametric objects to implement symbolic expression 
 | 
						|
	differentiation and simplification
 | 
						|
 | 
						|
viewpoints
 | 
						|
	example on how to implement property and value sharing with prototypes
 |