diff --git a/Logtalk/BIBLIOGRAPHY b/Logtalk/BIBLIOGRAPHY new file mode 100644 index 000000000..43d24e717 --- /dev/null +++ b/Logtalk/BIBLIOGRAPHY @@ -0,0 +1,36 @@ + +@misc{logtalkweb, + author = "Paulo Moura", + title = "Logtalk web site", + howpublished = "\url{http://www.logtalk.org/}" +} + + +@phdthesis{pmoura03, + author = "Paulo Moura", + title = "{Logtalk - Design of an Object-Oriented Logic Programming Language}", + school = "Departament of Informatics, University of Beira Interior, Portugal", + month = sep, + year = 2003, + howpublished = "\url{http://www.logtalk.org/papers/thesis.pdf}" +} + + +@techreport{pmoura00, + author = "Paulo Moura", + title = "Logtalk 2.6 {D}ocumentation", + institution = "University of Beira Interior, Portugal", + number = "DMI 2000/1", + year = 2000 +} + + +@article{pmoura99, + author = "Paulo Moura", + title = "{Porting Prolog: Notes on porting a Prolog program to 22 Prolog compilers or the relevance of the ISO Prolog standard}", + journal = "Assotiation of Logic Programming Newsletter", + volume = 12, + number = 2, + month = may, + year = 1999 +} diff --git a/Logtalk/QUICK_START b/Logtalk/QUICK_START index aa470255f..4c283d93a 100644 --- a/Logtalk/QUICK_START +++ b/Logtalk/QUICK_START @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -32,11 +32,10 @@ or workaround is needed for your compiler. 4. Compile and load the Logtalk pre-processor/runtime found in the compiler sub-directory. -Note that both the configuration files and the compiler/pre-processor -files are Prolog files. The predicate called to load these files depends -on your Prolog compiler. In case of doubt, consult your Prolog compiler -reference manual or take a look at the definition of the predicate -$lgt_load_prolog_code/1 in the configuration file. +Note that both the configuration files and the compiler/preprocessor files +are Prolog files. The predicate called to load these files depends on your +Prolog compiler (consult your Prolog compiler documentation or take a look +at the definition of the predicate $lgt_load_prolog_code/1 in the config file. Now you can try some of the included examples: @@ -56,8 +55,8 @@ file or your Prolog reference manual. 5. Compile and load the file named .loader. This will compile and load all the example files. Note that the loader file is a Prolog file. -6. Open the example SCRIPT file. One by one, copy&paste or drag&drop the -queries in the file to your Prolog top-level. +6. Open the example SCRIPT file. One by one, copy-and-paste or drag-and-drop +the queries in the file to your Prolog top-level. 7. Enjoy! @@ -72,4 +71,4 @@ when editing Logtalk source files. program. 3. Copy to this sub-directory a *.loader file form one of the examples and -modify it to load your own object files. +modify it to load your own source files. diff --git a/Logtalk/README b/Logtalk/README index 120c6cf89..82ea90567 100644 --- a/Logtalk/README +++ b/Logtalk/README @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -8,14 +8,15 @@ Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. CONTENTS -1. License -2. Home of Logtalk package -3. Registration -4. Support -5. Installation -6. Documentation -7. Upgrading -8. Contributions +1. License +2. Home of Logtalk package +3. Registration +4. Support +5. Installation +6. Documentation +7. Upgrading +8. Citations +9. Contributions 1. LICENSE @@ -112,7 +113,13 @@ If you have been using a previous Logtalk version read the file UPGRADING for instructions on how to upgrade your programs to run under this new version. -8. CONTRIBUTIONS +8. CITATIONS + +If you want to cite Logtalk in your publications, please consult the file +BIBLIOGRAPHY for BibTeX references. + + +9. CONTRIBUTIONS Contributions, constructive criticisms, code, and suggestions are always welcome. If you want to contribute to this project, drop me a line to the diff --git a/Logtalk/RELEASE_NOTES b/Logtalk/RELEASE_NOTES index d74ff134a..e93ee06c5 100644 --- a/Logtalk/RELEASE_NOTES +++ b/Logtalk/RELEASE_NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -10,6 +10,28 @@ RELEASE NOTES ============= +2.15.5 - December 30, 2003 + + Make operator ^^/1 right-associative for consistency with remaining + operator declarations. + + Added file BIBLIOGRAPHY containing a list of Logtalk publications in + BibTeX format. + + Added a font-lock file for Emacs providing syntax coloring for editing + Logtalk source files. + + Added an implementation of the Smalltalk dependent mechanism to the + standard Logtalk library. + + Updated the config file for ECLiPSe 5.4~5.7 with missing ISO Prolog + predicate definitions needed for successful compilation of all entities + in the Logtalk standard library. + + Updated manual pages to comply with XHTML 1.0 Strict and to provide + better navigation. + + 2.15.4 - July 9, 2003 Corrected a spurious backtracking bug in the DCG rule translator. Added diff --git a/Logtalk/UPGRADING b/Logtalk/UPGRADING index 31e1c1768..5c8e713f1 100644 --- a/Logtalk/UPGRADING +++ b/Logtalk/UPGRADING @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/NOTES b/Logtalk/examples/NOTES index edabd0cb1..00cc62c28 100644 --- a/Logtalk/examples/NOTES +++ b/Logtalk/examples/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/birds/NOTES b/Logtalk/examples/birds/NOTES index c6fa296e2..bce30267d 100644 --- a/Logtalk/examples/birds/NOTES +++ b/Logtalk/examples/birds/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/birds/SCRIPT b/Logtalk/examples/birds/SCRIPT index 429244cfa..8700d77a1 100644 --- a/Logtalk/examples/birds/SCRIPT +++ b/Logtalk/examples/birds/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/bricks/NOTES b/Logtalk/examples/bricks/NOTES index 719c537bb..5c1fa961e 100644 --- a/Logtalk/examples/bricks/NOTES +++ b/Logtalk/examples/bricks/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/bricks/SCRIPT b/Logtalk/examples/bricks/SCRIPT index 162f1b0a3..c7a44ba8f 100644 --- a/Logtalk/examples/bricks/SCRIPT +++ b/Logtalk/examples/bricks/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/classvars/NOTES b/Logtalk/examples/classvars/NOTES index 4aef1ff3d..d6cbfc35b 100644 --- a/Logtalk/examples/classvars/NOTES +++ b/Logtalk/examples/classvars/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/classvars/SCRIPT b/Logtalk/examples/classvars/SCRIPT index 84f547c01..9cee883ba 100644 --- a/Logtalk/examples/classvars/SCRIPT +++ b/Logtalk/examples/classvars/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dcgs/NOTES b/Logtalk/examples/dcgs/NOTES index d8bb7cd1d..3c2ae98f0 100644 --- a/Logtalk/examples/dcgs/NOTES +++ b/Logtalk/examples/dcgs/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dcgs/SCRIPT b/Logtalk/examples/dcgs/SCRIPT index 713fedd53..65295e7a2 100644 --- a/Logtalk/examples/dcgs/SCRIPT +++ b/Logtalk/examples/dcgs/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dynpred/NOTES b/Logtalk/examples/dynpred/NOTES index 8909b6d0b..de81166bd 100644 --- a/Logtalk/examples/dynpred/NOTES +++ b/Logtalk/examples/dynpred/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dynpred/SCRIPT b/Logtalk/examples/dynpred/SCRIPT index 7f2199768..03bcef777 100644 --- a/Logtalk/examples/dynpred/SCRIPT +++ b/Logtalk/examples/dynpred/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/errors/NOTES b/Logtalk/examples/errors/NOTES index a16c05a67..d59e8f521 100644 --- a/Logtalk/examples/errors/NOTES +++ b/Logtalk/examples/errors/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/inheritance/NOTES b/Logtalk/examples/inheritance/NOTES index 74a08973d..fdeb17a0a 100644 --- a/Logtalk/examples/inheritance/NOTES +++ b/Logtalk/examples/inheritance/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/inheritance/SCRIPT b/Logtalk/examples/inheritance/SCRIPT index 536775b24..5cf63ecad 100644 --- a/Logtalk/examples/inheritance/SCRIPT +++ b/Logtalk/examples/inheritance/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/instmethods/NOTES b/Logtalk/examples/instmethods/NOTES index c95e5d1d5..1f43bf435 100644 --- a/Logtalk/examples/instmethods/NOTES +++ b/Logtalk/examples/instmethods/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/instmethods/SCRIPT b/Logtalk/examples/instmethods/SCRIPT index 343da6165..ad6502389 100644 --- a/Logtalk/examples/instmethods/SCRIPT +++ b/Logtalk/examples/instmethods/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/NOTES b/Logtalk/examples/lo/NOTES index ae1a3d7ff..0da736fe2 100644 --- a/Logtalk/examples/lo/NOTES +++ b/Logtalk/examples/lo/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/planner/NOTES b/Logtalk/examples/lo/planner/NOTES index 978d86cda..4bdf26fa6 100644 --- a/Logtalk/examples/lo/planner/NOTES +++ b/Logtalk/examples/lo/planner/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/planner/SCRIPT b/Logtalk/examples/lo/planner/SCRIPT index 8c2012ec3..ed4556c72 100644 --- a/Logtalk/examples/lo/planner/SCRIPT +++ b/Logtalk/examples/lo/planner/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/travellers/NOTES b/Logtalk/examples/lo/travellers/NOTES index ac1b2a145..ac7486f54 100644 --- a/Logtalk/examples/lo/travellers/NOTES +++ b/Logtalk/examples/lo/travellers/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/travellers/SCRIPT b/Logtalk/examples/lo/travellers/SCRIPT index 5bf328aa7..2aec3203b 100644 --- a/Logtalk/examples/lo/travellers/SCRIPT +++ b/Logtalk/examples/lo/travellers/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lpa/NOTES b/Logtalk/examples/lpa/NOTES index c2f862206..3ec24217f 100644 --- a/Logtalk/examples/lpa/NOTES +++ b/Logtalk/examples/lpa/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lpa/SCRIPT b/Logtalk/examples/lpa/SCRIPT index ff780b0cc..6da9f87d8 100644 --- a/Logtalk/examples/lpa/SCRIPT +++ b/Logtalk/examples/lpa/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/metapredicates/NOTES b/Logtalk/examples/metapredicates/NOTES index bb1e2130b..d1d95ddd3 100644 --- a/Logtalk/examples/metapredicates/NOTES +++ b/Logtalk/examples/metapredicates/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/metapredicates/SCRIPT b/Logtalk/examples/metapredicates/SCRIPT index a0f8024a2..62eeb56cd 100644 --- a/Logtalk/examples/metapredicates/SCRIPT +++ b/Logtalk/examples/metapredicates/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/mi/NOTES b/Logtalk/examples/mi/NOTES index 2aeb6032e..a59b2f585 100644 --- a/Logtalk/examples/mi/NOTES +++ b/Logtalk/examples/mi/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/mi/SCRIPT b/Logtalk/examples/mi/SCRIPT index 8bd4b096a..922762524 100644 --- a/Logtalk/examples/mi/SCRIPT +++ b/Logtalk/examples/mi/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/miscellaneous/NOTES b/Logtalk/examples/miscellaneous/NOTES index 2d5c65e48..7f3a62c6f 100644 --- a/Logtalk/examples/miscellaneous/NOTES +++ b/Logtalk/examples/miscellaneous/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/miscellaneous/SCRIPT b/Logtalk/examples/miscellaneous/SCRIPT index 8e8209476..214e8a07e 100644 --- a/Logtalk/examples/miscellaneous/SCRIPT +++ b/Logtalk/examples/miscellaneous/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/msglog/NOTES b/Logtalk/examples/msglog/NOTES index edf7b747a..8f99b4f81 100644 --- a/Logtalk/examples/msglog/NOTES +++ b/Logtalk/examples/msglog/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/msglog/SCRIPT b/Logtalk/examples/msglog/SCRIPT index 0b1150893..2ab3fd76e 100644 --- a/Logtalk/examples/msglog/SCRIPT +++ b/Logtalk/examples/msglog/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/parametric/NOTES b/Logtalk/examples/parametric/NOTES index 4c3dfd5b5..e64c0dde3 100644 --- a/Logtalk/examples/parametric/NOTES +++ b/Logtalk/examples/parametric/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/parametric/SCRIPT b/Logtalk/examples/parametric/SCRIPT index 8db070c8d..834503634 100644 --- a/Logtalk/examples/parametric/SCRIPT +++ b/Logtalk/examples/parametric/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/points/NOTES b/Logtalk/examples/points/NOTES index a62269bfd..ebf6b65ff 100644 --- a/Logtalk/examples/points/NOTES +++ b/Logtalk/examples/points/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/points/SCRIPT b/Logtalk/examples/points/SCRIPT index 6a3b235dc..f722cdd32 100644 --- a/Logtalk/examples/points/SCRIPT +++ b/Logtalk/examples/points/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/polygons/NOTES b/Logtalk/examples/polygons/NOTES index 36e07dad1..c040193b1 100644 --- a/Logtalk/examples/polygons/NOTES +++ b/Logtalk/examples/polygons/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/polygons/SCRIPT b/Logtalk/examples/polygons/SCRIPT index 201968c92..a9103459e 100644 --- a/Logtalk/examples/polygons/SCRIPT +++ b/Logtalk/examples/polygons/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/profiling/NOTES b/Logtalk/examples/profiling/NOTES index a6caaa689..86f0f3a67 100644 --- a/Logtalk/examples/profiling/NOTES +++ b/Logtalk/examples/profiling/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/profiling/SCRIPT b/Logtalk/examples/profiling/SCRIPT index 70c040bf2..5a38e0419 100644 --- a/Logtalk/examples/profiling/SCRIPT +++ b/Logtalk/examples/profiling/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/reflection/NOTES b/Logtalk/examples/reflection/NOTES index 71ca2dd35..17134416b 100644 --- a/Logtalk/examples/reflection/NOTES +++ b/Logtalk/examples/reflection/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/reflection/SCRIPT b/Logtalk/examples/reflection/SCRIPT index 0ed126b35..e618979b2 100644 --- a/Logtalk/examples/reflection/SCRIPT +++ b/Logtalk/examples/reflection/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/relations/NOTES b/Logtalk/examples/relations/NOTES index 5c8d39c41..b0d88a1e0 100644 --- a/Logtalk/examples/relations/NOTES +++ b/Logtalk/examples/relations/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/relations/SCRIPT b/Logtalk/examples/relations/SCRIPT index e398fb2c9..d55bdeeab 100644 --- a/Logtalk/examples/relations/SCRIPT +++ b/Logtalk/examples/relations/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/roots/NOTES b/Logtalk/examples/roots/NOTES index ad23b0d76..fec92a48f 100644 --- a/Logtalk/examples/roots/NOTES +++ b/Logtalk/examples/roots/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/roots/SCRIPT b/Logtalk/examples/roots/SCRIPT index 4986c5e64..fba8028cc 100644 --- a/Logtalk/examples/roots/SCRIPT +++ b/Logtalk/examples/roots/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/searching/NOTES b/Logtalk/examples/searching/NOTES index a91377290..407b17111 100644 --- a/Logtalk/examples/searching/NOTES +++ b/Logtalk/examples/searching/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/searching/SCRIPT b/Logtalk/examples/searching/SCRIPT index 6bd5e9052..5e30314e5 100644 --- a/Logtalk/examples/searching/SCRIPT +++ b/Logtalk/examples/searching/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/NOTES b/Logtalk/examples/shapes/NOTES index fd164cd26..c3feb747b 100644 --- a/Logtalk/examples/shapes/NOTES +++ b/Logtalk/examples/shapes/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ch/NOTES b/Logtalk/examples/shapes/ch/NOTES index 83096aa12..b9b0da523 100644 --- a/Logtalk/examples/shapes/ch/NOTES +++ b/Logtalk/examples/shapes/ch/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ch/SCRIPT b/Logtalk/examples/shapes/ch/SCRIPT index 923ef638d..628e94046 100644 --- a/Logtalk/examples/shapes/ch/SCRIPT +++ b/Logtalk/examples/shapes/ch/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ph/NOTES b/Logtalk/examples/shapes/ph/NOTES index 06fadc098..eb52ca465 100644 --- a/Logtalk/examples/shapes/ph/NOTES +++ b/Logtalk/examples/shapes/ph/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ph/SCRIPT b/Logtalk/examples/shapes/ph/SCRIPT index 1e8a4843c..76712ec36 100644 --- a/Logtalk/examples/shapes/ph/SCRIPT +++ b/Logtalk/examples/shapes/ph/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/sicstus/NOTES b/Logtalk/examples/sicstus/NOTES index 2933c4570..ee7f4bf9c 100644 --- a/Logtalk/examples/sicstus/NOTES +++ b/Logtalk/examples/sicstus/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/sicstus/SCRIPT b/Logtalk/examples/sicstus/SCRIPT index cecc2b304..752d263f8 100644 --- a/Logtalk/examples/sicstus/SCRIPT +++ b/Logtalk/examples/sicstus/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/symdiff/NOTES b/Logtalk/examples/symdiff/NOTES index c42ea9e0a..16901a250 100644 --- a/Logtalk/examples/symdiff/NOTES +++ b/Logtalk/examples/symdiff/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/symdiff/SCRIPT b/Logtalk/examples/symdiff/SCRIPT index ef6e314b7..54f9c441b 100644 --- a/Logtalk/examples/symdiff/SCRIPT +++ b/Logtalk/examples/symdiff/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/viewpoints/NOTES b/Logtalk/examples/viewpoints/NOTES index 44f2f5d99..5d647d828 100644 --- a/Logtalk/examples/viewpoints/NOTES +++ b/Logtalk/examples/viewpoints/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/viewpoints/SCRIPT b/Logtalk/examples/viewpoints/SCRIPT index 743e3514a..0987d0ccf 100644 --- a/Logtalk/examples/viewpoints/SCRIPT +++ b/Logtalk/examples/viewpoints/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/NOTES b/Logtalk/library/NOTES index 7eb18bd2e..fe1f88e3c 100644 --- a/Logtalk/library/NOTES +++ b/Logtalk/library/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -10,11 +10,12 @@ predicates for dealing with common Prolog types and structures. To load a group of objects, protocols, and categories in this library change your Prolog working directory to this folder and then consult -the corresponding *.loader utility file. Currently, there are seven +the corresponding *.loader utility file. Currently, there are eight groups of entities defined: dates debugging + dependents events hierarchies metapredicates @@ -27,8 +28,8 @@ seven groups listed above. Specific notes about each group of objects, categories, and protocols can be found in the corresponding *.notes files. -Some files represent work in progress and are not loaded by default by -any loader utility file. +Some of the files contained in this directory represent work in progress +and are not loaded by default by any loader utility file. Some of the code in this library is based on public domain Prolog code, in particular, code adopted from the Edinburgh Prolog library. The definition diff --git a/Logtalk/library/SCRIPT b/Logtalk/library/SCRIPT index 84923327c..e660b84c5 100644 --- a/Logtalk/library/SCRIPT +++ b/Logtalk/library/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/all.loader b/Logtalk/library/all.loader index 1bdd4e709..04fea075d 100644 --- a/Logtalk/library/all.loader +++ b/Logtalk/library/all.loader @@ -12,6 +12,9 @@ debuggerp, % debugging debugger, + subject, % dependents + observer, + hierarchyp, % hierarchies proto_hierarchyp, proto_hierarchy, class_hierarchyp, class_hierarchy, diff --git a/Logtalk/library/all.notes b/Logtalk/library/all.notes index c2f184f04..ab6fe4b8f 100644 --- a/Logtalk/library/all.notes +++ b/Logtalk/library/all.notes @@ -1,7 +1,7 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/dates.notes b/Logtalk/library/dates.notes index 08ca5c11d..f8f690ccf 100644 --- a/Logtalk/library/dates.notes +++ b/Logtalk/library/dates.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/debugging.notes b/Logtalk/library/debugging.notes index 3faaaa53b..a1479ab9d 100644 --- a/Logtalk/library/debugging.notes +++ b/Logtalk/library/debugging.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/dependents.loader b/Logtalk/library/dependents.loader new file mode 100644 index 000000000..a0bb4b8d9 --- /dev/null +++ b/Logtalk/library/dependents.loader @@ -0,0 +1,5 @@ + +:- initialization( + logtalk_load([ + observer, + subject])). diff --git a/Logtalk/library/dependents.notes b/Logtalk/library/dependents.notes new file mode 100644 index 000000000..e10079b1d --- /dev/null +++ b/Logtalk/library/dependents.notes @@ -0,0 +1,13 @@ +================================================================= +Logtalk - Object oriented extension to Prolog +Release 2.15.5 + +Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. +================================================================= + + +To load all objects in this group consult the dependents.loader +utility file. + +The categories "observer" and "subject" implement the Smalltalk +dependent handling mechanism. diff --git a/Logtalk/library/events.notes b/Logtalk/library/events.notes index 4a5de8648..c4fba563f 100644 --- a/Logtalk/library/events.notes +++ b/Logtalk/library/events.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/hierarchies.notes b/Logtalk/library/hierarchies.notes index 5ff513e97..bba059f57 100644 --- a/Logtalk/library/hierarchies.notes +++ b/Logtalk/library/hierarchies.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/metapredicates.notes b/Logtalk/library/metapredicates.notes index 7af762f2b..f3d103bdb 100644 --- a/Logtalk/library/metapredicates.notes +++ b/Logtalk/library/metapredicates.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/random.notes b/Logtalk/library/random.notes index 1ee131c95..5a758b445 100644 --- a/Logtalk/library/random.notes +++ b/Logtalk/library/random.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/types.notes b/Logtalk/library/types.notes index 893905bc6..725c0cc57 100644 --- a/Logtalk/library/types.notes +++ b/Logtalk/library/types.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/manuals/NOTES b/Logtalk/manuals/NOTES index 8fd3afd20..8cce68974 100644 --- a/Logtalk/manuals/NOTES +++ b/Logtalk/manuals/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/manuals/bibliography.html b/Logtalk/manuals/bibliography.html index 7346455d9..b96fd74ff 100644 --- a/Logtalk/manuals/bibliography.html +++ b/Logtalk/manuals/bibliography.html @@ -1,265 +1,352 @@ - + + Logtalk Bibliography -
-

Bibliography

-
+ + +

Bibliography

+
- -
[Alexiev 93]
+
[Alexiev 93]
Mutable Object State for Object-Oriented Logic Programming: A Survey
Alexiev, V.
Technical Report TR 93-15, Department of Computing Science, University of Alberta, Canada
+
-
[Belli et al. 92]
+
+
[Belli et al. 92]
Object-oriented programming in Prolog: rationale and a case study
Belli, F., Jack, O., Naish, L.
Technical Report 92/2, Department of Electrical and Electronics Engineering, University of Paderborn, Germany
URL: http://www.cs.mu.oz.au/~lee/papers/oolp/
+
-
[Block 89]
+
+
[Block 89]
An Extended Frame Language
Block, F. P., Chan, N. C.
Proceedings OOPLSLA 89(10):151-157, ACM
+
-
[Bobrow et al. 88]
+
+
[Bobrow et al. 88]
Common Lisp Object System Specification
Bobrow, D. G., Michiel, L. G., Gabriel, R. P., Keene, S. E., Kiczales, G., Moon, D. A.
ACM SIGPLAN Notices(23)
+
-
[Bratko 90]
+
+
[Bratko 90]
Prolog Programming for Artificial Intelligence
Bratko, I.
Addison Wesley, 2º edition, 1990
+
-
[Champaux 92]
+
+
[Champaux 92]
A comparative Study of Object-Oriented Analysis Methods
Champaux, D., Faure, P.
Journal of Object-Oriented Programming, Vol. 5, N.1, 1992
+
-
[Clocksin 87]
+
+
[Clocksin 87]
Programming in Prolog
Clocksin, W.F., Mellish, C.S.
Springer-Verlag, New York, 1987
+
-
[Cointe 87]
+
+
[Cointe 87]
Metaclasses are First Class: the ObjVlisp Model
Cointe, P.
Proceedings OOPLSLA 87(10):156-167, ACM
+
-
[Cordes 91]
+
+
[Cordes 91]
The Literate Programming Paradigm
Cordes, D., Brown, M.
IEEE Computer, June 1991:52-61
+
-
[Covington 94]
+
+
[Covington 94]
ISO Prolog: A Summary of the Draft Proposed Standard
Covington, M. A.
URL: ftp://ai.uga.edu/pub/prolog.standard/
+
-
[Cox 86]
+
+
[Cox 86]
Object-Oriented Programming: An Evolutionary Approach
Cox, Brad J.
Addison-Wesley Publishing Company, Don Mills, Ontario
+
-
[Davison 89]
+
+
[Davison 89]
Polka: A Parlog Object oriented language
Davison, A.
Ph.D. Thesis, Imperial College, London, 1989
+
-
[Davison 92]
+
+
[Davison 92]
A survey of logic programming-based object oriented languages
Davison, A.
Tech Report 92/3, Dept. of Computer Science, University of Melbourne, Australia
URL: http://www.cs.mu.oz.au/tr_db/mu_92_03.ps.gz
+
-
[Davison 93]
+
+
[Davison 93]
The deductive and object oriented features of BeBOP
Davison, A.
Tech Report 93/6, Dept. of Computer Science, University of Melbourne, Australia
URL:http://www.cs.mu.oz.au/tr_db/mu_93_06.ps.gz
+
-
[Delzanno 97]
+
+
[Delzanno 97]
Logic and Object-Oriented Programming in Linear Logic
Delzanno, G.
Ph.D. Thesis, University of Pisa, Italy
URL:http://www.mpi-sb.mpg.de/~delzanno/
+
-
[Dony 90]
+
+
[Dony 90]
Exception Handling and Object-Oriented Programming: Towards a Synthesis
Dony, C.
Proceedings OOPLSLA 90:322-330, ACM
+
-
[Fornarino et al. 89]
+
+
[Fornarino et al. 89]
An Original Object-Oriented Approach for Relation Management
Fornarino, M., Pinna, A.-M.,Trousse, B.
Proceedings of the 4th Portuguese Conference on Artificial Intelligence
Lecture Notes in Artificial Intelligence, Springer-Verlag (390):13-26
+
-
[Fromherz 93]
+
+
[Fromherz 93]
OL(P): Object Layer for Prolog
Fromherz, M.
URL: ftp://parcftp.xerox.com/ftp/pub/ol/
+
-
[Fukunaga 86]
+
+
[Fukunaga 86]
An Experience with a Prolog-based Object-Oriented Language
Fukunaga, K., Hirose, S.
Proceedings OOPLSLA 86, 21(11):224-231, ACM
+
-
[Goldberg 83]
+
+
[Goldberg 83]
Smalltalk-80 The language and its implementation
Goldberg, A., Robson, D.
Addison-Wesley Series in Computer Science
+
-
[Joy et al. 00]
+
+
[Joy et al. 00]
The Java Language Specification, Second Edition
Joy, B., Steele, G., Gosling, J., Bracha, G.
Addison-Wesley, 2000
+
-
[ISO 95]
+
+
[ISO 95]
ISO/IEC DIS 13211-1 - Programming Language Prolog Part 1: General Core
Joint Technical Committee ISO/IEC JTC 1
URL: http://www.iso.ch/cate/d21413.html
+
-
[Knuth 84]
+
+
[Knuth 84]
Literate Programming
Knuth, D. E.
Computer Journal, May 84, 27(2):97-111
+
-
[Lieberman 86]
+
+
[Lieberman 86]
Using Prototypical Objects to Implement Shared Behaviour in Object Oriented Systems
Lieberman, H.
Proceedings OOPLSLA 86:189-214, ACM
+
-
[Maes 87]
+
+
[Maes 87]
Concepts and Experiments in Computational Reflection
Maes, P.
Proceedings OOPLSLA 87, ACM
+
-
[McCabe 92]
+
+
[McCabe 92]
Logic and Objects
McCabe, F. G.
Prentice Hall Series in Computer Science
+
-
[Moon 86]
+
+
[Moon 86]
Object-Oriented Programming in Flavors
Moon, D.
Proceedings OOPLSLA 86:1-8, ACM
+
-
[Moss 94]
+
+
[Moss 94]
Prolog++ The Power of Object-Oriented and Logic Programming
Moss, C.
Addison-Wesley International Series in Logic Programming, 1994
+
-
[Moura 94]
+
+
[Moura 94]
Logtalk: Programação Orientada para Objectos em Prolog
Moura, P., Costa, E.
2ª Conferência e Exposição Portuguesa de Tecnologia Orientada por Objectos
3i Consultores, Liboa
+
-
[Moura 99]
+
+
[Moura 99]
Porting Prolog: Notes on porting a Prolog program to 22 Prolog compilers or the relevance of the ISO Prolog standard
Moura, P.
ALP Newsletter, Vol. 12/2, May 1999
+
-
[Moura 00]
+
+
[Moura 00]
Logtalk 2.6 Documentation
Moura, P.
Technical Report DMI 2000/1
University of Beira Interior, Portugal
+
-
[Razek 92]
+
+
[Razek 92]
Combining Objects and Relations
Razek, G.
Comunications of the ACM, 27(12):66-70
+
-
[Rumbaugh 87]
+
+
[Rumbaugh 87]
Relations as Semantic Constructs in an Object-Oriented Language
Rumbaugh, J.
Proceedings OOPLSLA 87:466-481, ACM
+
-
[Rumbaugh 88]
+
+
[Rumbaugh 88]
Controlling Propagation of Operations using Attributes on Relations
Rumbaugh, J.
Proceedings OOPLSLA 88:285-296, ACM
+
-
[Schachte 95]
+
+
[Schachte 95]
Efficient Object-Oriented Programming in Prolog
Schachte, P., Saab, G.
Logic Programming: Formal Methods and Pratical Applications
Studies in Computer Science and Artificial Intelligence, 11
Elsevier Science B.V. North-Holland, Amsterdam, 1995
+
-
[SICStus 95]
+
+
[SICStus 95]
SICStus Prolog Manual
SICStus
URL: http://www.sics.se/ps/sicstus.html
+
-
[Shan et al. 93]
+
+
[Shan et al. 93]
Is Multiple Inheritance Essential to OOP? (Panel)
Shan, Y., Cargill, T., Cox, B., Cook, W., Loomis, M., Snyder, A.
Proceedings OOPLSLA 93:360-363
+
-
[Stefik et al. 86]
+
+
[Stefik et al. 86]
Integrating Acess-Oriented Programming into a Multiparadigm Environment
Stefik, M. J., Bobrow, D. G. , Kahn, K. M.
IEEE Software, January 1986:10-18
+
-
[Stroustrup 86]
+
+
[Stroustrup 86]
The C++ Programming Language
Stroustrup, B.
Addison-Wesley Series in Computer Science
+
-
[Taenzer 89]
+
+
[Taenzer 89]
Problems in Object-Oriented Software Reuse
Taenzer, D., Ganti, M., Podar, S.
Proceedings of ECOOP 89
British Computer Society Workshop Series, Cambridge University Press
+
-
[Tanzer 95]
+
+
[Tanzer 95]
Remarks on Object-Oriented Modeling of Associations
Tanzer, C.
Journal of Object-Oriented Programming, February 1995, SIGS Publications
+
-
[Tanenbaum 87]
+
+
[Tanenbaum 87]
Operating Systems - Design and Implementation
Tanenbaum, A.
Prentice-Hall Software Series, 1987
+
-
[Welsch 89]
+
+
[Welsch 89]
Reasoning Objects with Dynamic Knowledge Bases
Welsch, C., Barth, G.
Proceedings of the 4th Portuguese Conference on Artificial Intelligence(390):257-268
Lecture Notes in Artificial Intelligence, Springer-Verlag, 1989
-
-

More references can be found in the Object-Oriented Logic Programming Resources web page.

-
-

-User manual | Reference manual | Tutorial | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + + - diff --git a/Logtalk/manuals/glossary.html b/Logtalk/manuals/glossary.html index 53d65ebfc..a388fbe97 100644 --- a/Logtalk/manuals/glossary.html +++ b/Logtalk/manuals/glossary.html @@ -1,179 +1,183 @@ - + + Logtalk Glossary -
-

Glossary

-
+ + +

Glossary

-
ancestor
+
ancestor
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).
-
category
+
category
A set of predicates directives and clauses that can be imported by any object.
-
class
+
class
An object that defines the common predicates of a set of objects (its instances).
-
abstract class
+
abstract class
A class that can not be instantiated. Usually used to store common predicates that are inherited by other classes.
-
metaclass
+
metaclass
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.
-
subclass
+
subclass
A class that is a specialization, direct or indirectly, of another class.
-
superclass
+
superclass
A class from each another class is a specialization (direct or indirectly, via another class).
-
directive
+
directive
A Prolog term that affects the interpretation of Prolog code. Directives are represented using the :-/1 prefix functor.
-
entity directive
+
entity directive
A directive that affects how Logtalk entities (objects, protocols, or categories) are used or compiled.
-
predicate directive
+
predicate directive
A directive that affects how predicates are called or compiled.
-
encapsulation
+
encapsulation
The hiding of an object implementation. This promotes software reuse by isolating users from implementation details.
-
entity
+
entity
Generic name for Logtalk compilation units: objects, categories and protocols.
-
event
+
event
The sending of a message to an object. An event can be expressed as an ordered tuple: (Event, Object, Message, Sender). Logtalk distinguish between the sending of a message - before event - and the return of control to the sender - after event.
-
identity
+
identity
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.
-
inheritance
+
inheritance
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.
-
private inheritance
+
private inheritance
All public and protected predicates are inherited as private predicates.
-
protected inheritance
+
protected inheritance
All public predicates are inherited as protected. No change for protected or private predicates.
-
public inheritance
+
public inheritance
All inherited predicates maintain the declared scope.
-
instance
+
instance
The same as object. This term is used when we want to emphasize that an object characteristics are defined by another object (its class).
-
instantiation
+
instantiation
The process of creating a new class instance.
-
message
+
message
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.
-
metainterpreter
+
metainterpreter
A program capable of running and modifying other programs written in the same language.
-
method
+
method
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.
-
monitor
+
monitor
Any object that is notified when a spied event occurs. The spied events can be set by the monitor or by any other object.
-
object
+
object
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.
-
parametric object
+
parametric object
An object whose name is a compound term containing free variables that can be used to parameterize the object predicates.
-
parent
+
parent
An object that is extended by another object.
-
predicate
+
predicate
Predicates describe what is true about the application domain. A predicate is identified by its name and number of arguments using the notation <name>/<nargs>.
-
local predicate
+
local predicate
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.
-
metapredicate
+
metapredicate
A predicate where one of its arguments will be called as a goal. For instance, findall/3 and call/1 are Prolog built-ins metapredicates.
-
private predicate
+
private predicate
A predicate that can only be called from the object that contains the scope directive.
-
protected predicate
+
protected predicate
A predicate that can only be called from the object containing the scope directive or from an object that inherits the predicate.
-
public predicate
+
public predicate
A predicate that can be called from any object.
-
visible predicate
+
visible predicate
A predicate that is declared for an object, a built-in method, or a Prolog or Logtalk built-in predicate.
-
profiler
+
profiler
A program that collects data about other program performance.
-
protocol
+
protocol
A set of predicates directives that can be implemented by an object or a category (or extended by another protocol).
-
prototype
+
prototype
A self-describing object that may extend or be extended by other objects.
-
self
+
self
The original object that received the message under execution.
-
sender
+
sender
An object that sends a message to other object.
-
specialization
+
specialization
A class is specialized by constructing a new class that inherit its predicates and possibly add new ones.
-
this
+
this
The object that contains the predicate clause under execution.
-
-

-User manual | Reference manual | Tutorial | Bibliography -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/index.html b/Logtalk/manuals/index.html index 99a2b3325..c2ca51918 100644 --- a/Logtalk/manuals/index.html +++ b/Logtalk/manuals/index.html @@ -1,59 +1,44 @@ - + - Logtalk 2.15.4 Documentation + + Logtalk 2.15.5 Documentation -
-

Logtalk 2.15.4

+ -

Documentation

-

-Paulo Moura
-(pmoura@logtalk.org) -

-

-Logtalk.org -

+

Logtalk 2.15.5 Documentation

-
-

Table of Contents

-

-User Manual -

-

-Reference Manual -

-

-Tutorial -

-

-Bibliography -

-

-Glossary -

+ -
-

-Last updated on: July 7, 2003 -

-

-Valid XHTML 1.0! -Valid CSS! -Made with a Macintosh -

-
+ + + + + - diff --git a/Logtalk/manuals/refman/builtins/abolish_category1.html b/Logtalk/manuals/refman/builtins/abolish_category1.html index 603261cca..8eeb2cad2 100644 --- a/Logtalk/manuals/refman/builtins/abolish_category1.html +++ b/Logtalk/manuals/refman/builtins/abolish_category1.html @@ -1,28 +1,29 @@ - + - abolish_category/1 + + Logtalk built-in predicate: abolish_category/1 -
-

abolish_category/1

-
+ + +

abolish_category/1

Description

-
-abolish_category(Category)
-
+
abolish_category(Category)

Removes from the database a dynamic category.

@@ -31,9 +32,7 @@ abolish_category(Category)

Template and modes

-
-abolish_category(@category_identifier)
-
+
abolish_category(@category_identifier)

Errors

@@ -54,20 +53,19 @@ abolish_category(@category_identifier)

Examples

-
-| ?- abolish_category(monitoring).
-
+
| ?- abolish_category(monitoring).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/abolish_events5.html b/Logtalk/manuals/refman/builtins/abolish_events5.html index 2d48e0331..659a2120f 100644 --- a/Logtalk/manuals/refman/builtins/abolish_events5.html +++ b/Logtalk/manuals/refman/builtins/abolish_events5.html @@ -1,28 +1,30 @@ - + - abolish_events/5 + + Logtalk built-in predicate: abolish_events/5 -
-

abolish_events/5

-
+ + +

abolish_events/5

+

Description

-
-abolish_events(Event, Object, Message, Sender, Monitor)
-
+
abolish_events(Event, Object, Message, Sender, Monitor)

Abolishes all matching events.

@@ -31,9 +33,7 @@ abolish_events(Event, Object, Message, Sender, Monitor)

Template and modes

-
-abolish_events(@event, @object_identifier, @callable, @object_identifier, @object_identifier)
-
+
abolish_events(@event, @object_identifier, @callable, @object_identifier, @object_identifier)

Errors

@@ -56,20 +56,19 @@ abolish_events(@event, @object_identifier, @callable, @object_identifier, @objec

Examples

-
-| ?- abolish_events(_, list, _, _, debugger).
-
+
| ?- abolish_events(_, list, _, _, debugger).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/abolish_object1.html b/Logtalk/manuals/refman/builtins/abolish_object1.html index eedc2df88..cbc90a645 100644 --- a/Logtalk/manuals/refman/builtins/abolish_object1.html +++ b/Logtalk/manuals/refman/builtins/abolish_object1.html @@ -1,39 +1,36 @@ - + - abolish_object/1 + + Logtalk built-in predicate: abolish_object/1 -
-

abolish_object/1

-
+ + +

abolish_object/1

Description

-
-abolish_object(Object)
-
-

- Removes from the database a dynamic object. -

+
abolish_object(Object)
+

Removes from the database a dynamic object.

Template and modes

-
-abolish_object(@object_identifier)
-
+
abolish_object(@object_identifier)

Errors

@@ -54,20 +51,19 @@ abolish_object(@object_identifier)

Examples

-
-| ?- abolish_object(list).
-
+
| ?- abolish_object(list).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/abolish_protocol1.html b/Logtalk/manuals/refman/builtins/abolish_protocol1.html index f2bc02f97..055834e71 100644 --- a/Logtalk/manuals/refman/builtins/abolish_protocol1.html +++ b/Logtalk/manuals/refman/builtins/abolish_protocol1.html @@ -1,28 +1,30 @@ - + - abolish_protocol/1 + + Logtalk built-in predicate: abolish_protocol/1 -
-

abolish_protocol/1

-
+ + +

abolish_protocol/1

+

Description

-
-abolish_protocol(Protocol)
-
+
abolish_protocol(Protocol)

Removes from the database a dynamic protocol.

@@ -31,9 +33,7 @@ abolish_protocol(Protocol)

Template and modes

-
-abolish_protocol(@protocol_identifier)
-
+
abolish_protocol(@protocol_identifier)

Errors

@@ -54,20 +54,19 @@ abolish_protocol(@protocol_identifier)

Examples

-
-| ?- abolish_protocol(listp).
-
+
| ?- abolish_protocol(listp).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/category_property2.html b/Logtalk/manuals/refman/builtins/category_property2.html index 2e8e65746..9306cb6df 100644 --- a/Logtalk/manuals/refman/builtins/category_property2.html +++ b/Logtalk/manuals/refman/builtins/category_property2.html @@ -1,28 +1,30 @@ - + - category_property/2 + + Logtalk built-in predicate: category_property/2 -
-

category_property/2

-
+ + +

category_property/2

+

Description

-
-category_property(Category, Property)
-
+
category_property(Category, Property)

Enumerates, by backtracking, the properties associated with the defined categories.

@@ -31,9 +33,7 @@ category_property(Category, Property)

Template and modes

-
-category_property(?category_identifier, ?category_property)
-
+
category_property(?category_identifier, ?category_property)

Errors

@@ -50,20 +50,19 @@ category_property(?category_identifier, ?category_property)

Examples

-
-| ?- category_property(Category, dynamic).
-
+
| ?- category_property(Category, dynamic).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/create_category4.html b/Logtalk/manuals/refman/builtins/create_category4.html index 266e79772..b5e447b3b 100644 --- a/Logtalk/manuals/refman/builtins/create_category4.html +++ b/Logtalk/manuals/refman/builtins/create_category4.html @@ -1,28 +1,30 @@ - + - create_category/4 + + Logtalk built-in predicate: create_category/4 -
-

create_category/4

-
+ + +

create_category/4

+

Description

-
-create_category(Identifier, Relations, Directives, Clauses)
-
+
create_category(Identifier, Relations, Directives, Clauses)

Creates a new, dynamic, category.

@@ -31,9 +33,7 @@ create_category(Identifier, Relations, Directives, Clauses)

Template and modes

-
-create_category(+category_identifier, +list, +list, +list)
-
+
create_category(+category_identifier, +list, +list, +list)

Errors

@@ -60,20 +60,19 @@ create_category(+category_identifier, +list, +list, +list)

Examples

-
-| ?- create_category(foo, [implements(bar)], [], [bar(1), bar(2)]).
-
+
| ?- create_category(foo, [implements(bar)], [], [bar(1), bar(2)]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/create_object4.html b/Logtalk/manuals/refman/builtins/create_object4.html index 965374384..f9b50009e 100644 --- a/Logtalk/manuals/refman/builtins/create_object4.html +++ b/Logtalk/manuals/refman/builtins/create_object4.html @@ -1,28 +1,30 @@ - + - create_object/4 + + Logtalk built-in predicate: create_object/4 -
-

create_object/4

-
+ + +

create_object/4

+

Description

-
-create_object(Identifier, Relations, Directives, Clauses)
-
+
create_object(Identifier, Relations, Directives, Clauses)

Creates a new, dynamic, object.

@@ -31,9 +33,7 @@ create_object(Identifier, Relations, Directives, Clauses)

Template and modes

-
-create_object(+object_identifier, +list, +list, +list)
-
+
create_object(+object_identifier, +list, +list, +list)

Errors

@@ -60,20 +60,19 @@ create_object(+object_identifier, +list, +list, +list)

Examples

-
-| ?- create_object(foo, [extends(bar)], [public(foo/1)], [foo(1), foo(2)]).
-
+
| ?- create_object(foo, [extends(bar)], [public(foo/1)], [foo(1), foo(2)]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/create_protocol3.html b/Logtalk/manuals/refman/builtins/create_protocol3.html index 7b711d18b..55cdc6a5c 100644 --- a/Logtalk/manuals/refman/builtins/create_protocol3.html +++ b/Logtalk/manuals/refman/builtins/create_protocol3.html @@ -1,28 +1,30 @@ - + - create_protocol/3 + + Logtalk built-in predicate: create_protocol/3 -
-

create_protocol/3

-
+ + +

create_protocol/3

+

Description

-
-create_protocol(Identifier, Relations, Directives)
-
+
create_protocol(Identifier, Relations, Directives)

Creates a new, dynamic, protocol.

@@ -31,9 +33,7 @@ create_protocol(Identifier, Relations, Directives)

Template and modes

-
-create_protocol(+protocol_identifier, +list, +list)
-
+
create_protocol(+protocol_identifier, +list, +list)

Errors

@@ -58,20 +58,19 @@ create_protocol(+protocol_identifier, +list, +list)

Examples

-
-| ?- create_protocol(foo, [extends(bar)], [public(foo/1)]).
-
+
| ?- create_protocol(foo, [extends(bar)], [public(foo/1)]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/current_category1.html b/Logtalk/manuals/refman/builtins/current_category1.html index b3c76d1bb..e9e2c58e8 100644 --- a/Logtalk/manuals/refman/builtins/current_category1.html +++ b/Logtalk/manuals/refman/builtins/current_category1.html @@ -1,28 +1,30 @@ - + - current_category/1 + + Logtalk built-in predicate: current_category/1 -
-

current_category/1

-
+ + +

current_category/1

+

Description

-
-current_category(Category)
-
+
current_category(Category)

Enumerates, by backtracking, all currently defined categories. All categories are found, either static, dynamic, or built-in.

@@ -31,9 +33,7 @@ current_category(Category)

Template and modes

-
-current_category(?category_identifier)
-
+
current_category(?category_identifier)

Errors

@@ -48,20 +48,19 @@ current_category(?category_identifier)

Examples

-
-| ?- current_category(monitoring).
-
+
| ?- current_category(monitoring).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/current_event5.html b/Logtalk/manuals/refman/builtins/current_event5.html index 5b4c5fdab..9846a487d 100644 --- a/Logtalk/manuals/refman/builtins/current_event5.html +++ b/Logtalk/manuals/refman/builtins/current_event5.html @@ -1,28 +1,30 @@ - + - current_event/5 + + Logtalk built-in predicate: current_event/5 -
-

current_event/5

-
+ + +

current_event/5

+

Description

-
-current_event(Event, Object, Message, Sender, Monitor)
-
+
current_event(Event, Object, Message, Sender, Monitor)

Enumerates, by backtracking, all defined events.

@@ -31,9 +33,7 @@ current_event(Event, Object, Message, Sender, Monitor)

Template and modes

-
-current_event(?event, ?object_identifier, ?callable, ?object_identifier, ?object_identifier)
-
+
current_event(?event, ?object_identifier, ?callable, ?object_identifier, ?object_identifier)

Errors

@@ -56,20 +56,19 @@ current_event(?event, ?object_identifier, ?callable, ?object_identifier, ?object

Examples

-
-| ?- current_event(Event, Object, Message, Sender, debugger).
-
+
| ?- current_event(Event, Object, Message, Sender, debugger).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/current_logtalk_flag2.html b/Logtalk/manuals/refman/builtins/current_logtalk_flag2.html index da7274d7c..34eebb5e6 100644 --- a/Logtalk/manuals/refman/builtins/current_logtalk_flag2.html +++ b/Logtalk/manuals/refman/builtins/current_logtalk_flag2.html @@ -1,28 +1,30 @@ - + - current_logtalk_flag/2 + + Logtalk built-in predicate: current_logtalk_flag/2 -
-

current_logtalk_flag/2

-
+ + +

current_logtalk_flag/2

+

Description

-
-current_logtalk_flag(Flag, Value)
-
+
current_logtalk_flag(Flag, Value)

Enumerates, by backtracking, the current Logtalk flag values.

@@ -31,9 +33,7 @@ current_logtalk_flag(Flag, Value)

Template and modes

-
-current_logtalk_flag(?atom, ?atom)
-
+
current_logtalk_flag(?atom, ?atom)

Errors

@@ -50,20 +50,19 @@ current_logtalk_flag(?atom, ?atom)

Examples

-
-| ?- current_logtalk_flag(xml, Value).
-
+
| ?- current_logtalk_flag(xml, Value).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/current_object1.html b/Logtalk/manuals/refman/builtins/current_object1.html index 4b42062e3..6bd3f5191 100644 --- a/Logtalk/manuals/refman/builtins/current_object1.html +++ b/Logtalk/manuals/refman/builtins/current_object1.html @@ -1,28 +1,30 @@ - + - current_object/1 + + Logtalk built-in predicate: current_object/1 -
-

current_object/1

-
+ + +

current_object/1

+

Description

-
-current_object(Object)
-
+
current_object(Object)

Enumerates, by backtracking, all currently defined objects. All objects are found, either static, dynamic or built-in.

@@ -31,9 +33,7 @@ current_object(Object)

Template and modes

-
-current_object(?object_identifier)
-
+
current_object(?object_identifier)

Errors

@@ -48,20 +48,19 @@ current_object(?object_identifier)

Examples

-
-| ?- current_object(list).
-
+
| ?- current_object(list).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/current_protocol1.html b/Logtalk/manuals/refman/builtins/current_protocol1.html index 0256f8eb5..5535a68f7 100644 --- a/Logtalk/manuals/refman/builtins/current_protocol1.html +++ b/Logtalk/manuals/refman/builtins/current_protocol1.html @@ -1,28 +1,30 @@ - + - current_protocol/1 + + Logtalk built-in predicate: current_protocol/1 -
-

current_protocol/1

-
+ + +

current_protocol/1

+

Description

-
-current_protocol(Protocol)
-
+
current_protocol(Protocol)

Enumerates, by backtracking, all currently defined protocols. All protocols are found, either static, dynamic, or built-in.

@@ -31,9 +33,7 @@ current_protocol(Protocol)

Template and modes

-
-current_protocol(?protocol_identifier)
-
+
current_protocol(?protocol_identifier)

Errors

@@ -48,20 +48,19 @@ current_protocol(?protocol_identifier)

Examples

-
-| ?- current_protocol(listp).
-
+
| ?- current_protocol(listp).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/define_events5.html b/Logtalk/manuals/refman/builtins/define_events5.html index a3cb4e45b..f590492d2 100644 --- a/Logtalk/manuals/refman/builtins/define_events5.html +++ b/Logtalk/manuals/refman/builtins/define_events5.html @@ -1,28 +1,30 @@ - + - define_events/2 + + Logtalk built-in predicate: define_events/2 -
-

define_events/5

-
+ + +

define_events/5

+

Description

-
-define_events(Event, Object, Message, Sender, Monitor)
-
+
define_events(Event, Object, Message, Sender, Monitor)

Defines a new set of events.

@@ -31,9 +33,7 @@ define_events(Event, Object, Message, Sender, Monitor)

Template and modes

-
-define_events(@event, @object_identifier, @callable, @object_identifier, +object_identifier)
-
+
define_events(@event, @object_identifier, @callable, @object_identifier, +object_identifier)

Errors

@@ -58,20 +58,19 @@ define_events(@event, @object_identifier, @callable, @object_identifier, +object

Examples

-
-| ?- define_events(_, list, member(_, _), _ , debugger).
-
+
| ?- define_events(_, list, member(_, _), _ , debugger).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/extends_object2_3.html b/Logtalk/manuals/refman/builtins/extends_object2_3.html index 28d920e77..1bc0bba1c 100644 --- a/Logtalk/manuals/refman/builtins/extends_object2_3.html +++ b/Logtalk/manuals/refman/builtins/extends_object2_3.html @@ -1,30 +1,32 @@ - + - extends_object/2-3 + + Logtalk built-in predicate: extends_object/2-3 -
-

extends_object/2-3

-
+ + +

extends_object/2-3

+

Description

-
-extends_object(Prototype, Parent)
+
extends_object(Prototype, Parent)
 
-extends_object(Prototype, Parent, Scope)
-
+extends_object(Prototype, Parent, Scope)

Enumerates, by backtracking, all pairs of objects such that the first one extends the second.

@@ -33,11 +35,9 @@ extends_object(Prototype, Parent, Scope)

Template and modes

-
-extends_object(?object_identifier, ?object_identifier)
+
extends_object(?object_identifier, ?object_identifier)
 
-extends_object(?object_identifier, ?object_identifier, ?scope)
-
+extends_object(?object_identifier, ?object_identifier, ?scope)

Errors

@@ -56,22 +56,21 @@ extends_object(?object_identifier, ?object_identifier, ?scope)

Examples

-
-| ?- extends_object(Object, state_space).
+
| ?- extends_object(Object, state_space).
 
-| ?- extends_object(Object, list, public).
-
+| ?- extends_object(Object, list, public).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/extends_protocol2_3.html b/Logtalk/manuals/refman/builtins/extends_protocol2_3.html index a1d71f8e9..cbc51d33a 100644 --- a/Logtalk/manuals/refman/builtins/extends_protocol2_3.html +++ b/Logtalk/manuals/refman/builtins/extends_protocol2_3.html @@ -1,30 +1,32 @@ - + - extends_protocol/2-3 + + Logtalk built-in predicate: extends_protocol/2-3 -
-

extends_protocol/2-3

-
+ + +

extends_protocol/2-3

+

Description

-
-extends_protocol(Protocol1, Protocol2)
+
extends_protocol(Protocol1, Protocol2)
 
-extends_protocol(Protocol1, Protocol2, Scope)
-
+extends_protocol(Protocol1, Protocol2, Scope)

Enumerates, by backtracking, all pairs of protocols such that the first one extends the second.

@@ -33,11 +35,9 @@ extends_protocol(Protocol1, Protocol2, Scope)

Template and modes

-
-extends_protocol(?protocol_identifier, ?protocol_identifier)
+
extends_protocol(?protocol_identifier, ?protocol_identifier)
 
-extends_protocol(?protocol_identifier, ?protocol_identifier, ?scope)
-
+extends_protocol(?protocol_identifier, ?protocol_identifier, ?scope)

Errors

@@ -56,22 +56,21 @@ extends_protocol(?protocol_identifier, ?protocol_identifier, ?scope)

Examples

-
-| ?- extends_protocol(listp, Protocol).
+
| ?- extends_protocol(listp, Protocol).
 
-| ?- extends_protocol(Protocol, termp, private).
-
+| ?- extends_protocol(Protocol, termp, private).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/forall2.html b/Logtalk/manuals/refman/builtins/forall2.html index 0b2b8288e..f1496acb9 100644 --- a/Logtalk/manuals/refman/builtins/forall2.html +++ b/Logtalk/manuals/refman/builtins/forall2.html @@ -1,28 +1,30 @@ - + - forall/2 + + Logtalk built-in predicate: forall/2 -
-

forall/2

-
+ + +

forall/2

+

Description

-
-forall(Generator, Test)
-
+
forall(Generator, Test)

This predicate is true if, for all solutions of Generator, Test is true (some Prolog compilers already define this or a similar predicate).

@@ -31,9 +33,7 @@ forall(Generator, Test)

Template and modes

-
-forall(+callable, +callable)
-
+
forall(+callable, +callable)

Errors

@@ -50,20 +50,19 @@ forall(+callable, +callable)

Examples

-
-| ?- forall(member(X, [1, 2, 3]), write(X)).
-
+
| ?- forall(member(X, [1, 2, 3]), write(X)).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: September 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/implements_protocol2_3.html b/Logtalk/manuals/refman/builtins/implements_protocol2_3.html index 28fe81784..5a1f99aef 100644 --- a/Logtalk/manuals/refman/builtins/implements_protocol2_3.html +++ b/Logtalk/manuals/refman/builtins/implements_protocol2_3.html @@ -1,32 +1,34 @@ - + - implements_protocol/2-3 + + Logtalk built-in predicate: implements_protocol/2-3 -
-

implements_protocol/2-3

-
+ + +

implements_protocol/2-3

+

Description

-
-implements_protocol(Object, Protocol)
+
implements_protocol(Object, Protocol)
 implements_protocol(Category, Protocol)
 
 implements_protocol(Object, Protocol, Scope)
-implements_protocol(Category, Protocol, Scope)
-
+implements_protocol(Category, Protocol, Scope)

Enumerates, by backtracking, all pairs of entities such that an object or a category implements a protocol.

@@ -35,13 +37,11 @@ implements_protocol(Category, Protocol, Scope)

Template and modes

-
-implements_protocol(?object_identifier, ?protocol_identifier)
+
implements_protocol(?object_identifier, ?protocol_identifier)
 implements_protocol(?category_identifier, ?protocol_identifier)
 
 implements_protocol(?object_identifier, ?protocol_identifier, ?scope)
-implements_protocol(?category_identifier, ?protocol_identifier, ?scope)
-
+implements_protocol(?category_identifier, ?protocol_identifier, ?scope)

Errors

@@ -62,22 +62,21 @@ implements_protocol(?category_identifier, ?protocol_identifier, ?scope)

Examples

-
-| ?- implements_protocol(List, listp).
+
| ?- implements_protocol(List, listp).
 
-| ?- implements_protocol(List, listp, public).
-
+| ?- implements_protocol(List, listp, public).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/imports_category2_3.html b/Logtalk/manuals/refman/builtins/imports_category2_3.html index e4719b019..0021792e4 100644 --- a/Logtalk/manuals/refman/builtins/imports_category2_3.html +++ b/Logtalk/manuals/refman/builtins/imports_category2_3.html @@ -1,30 +1,32 @@ - + - imports_category/2-3 + + Logtalk built-in predicate: imports_category/2-3 -
-

imports_category/2-3

-
+ + +

imports_category/2-3

+

Description

-
-imports_category(Object, Category)
+
imports_category(Object, Category)
 
-imports_category(Object, Category, Scope)
-
+imports_category(Object, Category, Scope)

Enumerates, by backtracking, all pairs of objects and categories such that the first one imports the other.

@@ -33,11 +35,9 @@ imports_category(Object, Category, Scope)

Template and modes

-
-imports_category(?object_identifier, ?category_identifier)
+
imports_category(?object_identifier, ?category_identifier)
 
-imports_category(?object_identifier, ?category_identifier, ?scope)
-
+imports_category(?object_identifier, ?category_identifier, ?scope)

Errors

@@ -56,22 +56,21 @@ imports_category(?object_identifier, ?category_identifier, ?scope)

Examples

-
-| ?- imports_category(debugger, monitoring).
+
| ?- imports_category(debugger, monitoring).
 
-| ?- imports_category(Object, monitoring, protected).
-
+| ?- imports_category(Object, monitoring, protected).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/instantiates_class2_3.html b/Logtalk/manuals/refman/builtins/instantiates_class2_3.html index f0838f166..2e4ce01ef 100644 --- a/Logtalk/manuals/refman/builtins/instantiates_class2_3.html +++ b/Logtalk/manuals/refman/builtins/instantiates_class2_3.html @@ -1,30 +1,32 @@ - + - instantiates_class/2-3 + + Logtalk built-in predicate: instantiates_class/2-3 -
-

instantiates_class/2-3

-
+ + +

instantiates_class/2-3

+

Description

-
-instantiates_class(Instance, Class)
+
instantiates_class(Instance, Class)
 
-instantiates_class(Instance, Class, Scope)
-
+instantiates_class(Instance, Class, Scope)

Enumerates, by backtracking, all pairs of objects such that the first one instantiates the second.

@@ -33,11 +35,9 @@ instantiates_class(Instance, Class, Scope)

Template and modes

-
-instantiates_class(?object_identifier, ?object_identifier)
+
instantiates_class(?object_identifier, ?object_identifier)
 
-instantiates_class(?object_identifier, ?object_identifier, ?scope)
-
+instantiates_class(?object_identifier, ?object_identifier, ?scope)

Errors

@@ -56,22 +56,21 @@ instantiates_class(?object_identifier, ?object_identifier, ?scope)

Examples

-
-| ?- instantiates_class(water_jug, state_space).
+
| ?- instantiates_class(water_jug, state_space).
 
-| ?- instantiates_class(Space, state_space, public).
-
+| ?- instantiates_class(Space, state_space, public).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/logtalk_compile1.html b/Logtalk/manuals/refman/builtins/logtalk_compile1.html index 6cf70c9ed..6906b9e74 100644 --- a/Logtalk/manuals/refman/builtins/logtalk_compile1.html +++ b/Logtalk/manuals/refman/builtins/logtalk_compile1.html @@ -1,29 +1,31 @@ - + - logtalk_compile/1 + + Logtalk built-in predicate: logtalk_compile/1 -
-

logtalk_compile/1

-
+ + +

logtalk_compile/1

+

Description

-
-logtalk_compile(Entity)
-logtalk_compile(Entities)
-
+
logtalk_compile(Entity)
+logtalk_compile(Entities)

Compiles to disk an entity or a list of entities (objects, protocols, or categories) using the default compiler options specified in the Logtalk configuration file. The Logtalk file name extension (by default, .lgt) should be omitted. Note that the argument is a list of entity/file names, not file paths. In other words, the files must exist in your current working directory.

@@ -35,9 +37,7 @@ Note that only the errors related to problems in the predicate argument are list

Template and modes

-
-logtalk_compile(@atom_or_atom_list)
-
+
logtalk_compile(@atom_or_atom_list)

Errors

@@ -60,22 +60,21 @@ logtalk_compile(@atom_or_atom_list)

Examples

-
-| ?- logtalk_compile(tree).
+
| ?- logtalk_compile(tree).
 
-| ?- logtalk_compile([listp, list]).
-
+| ?- logtalk_compile([listp, list]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: January 10, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/logtalk_compile2.html b/Logtalk/manuals/refman/builtins/logtalk_compile2.html index ede0366c2..1c12340b6 100644 --- a/Logtalk/manuals/refman/builtins/logtalk_compile2.html +++ b/Logtalk/manuals/refman/builtins/logtalk_compile2.html @@ -1,29 +1,31 @@ - + - logtalk_compile/2 + + Logtalk built-in predicate: logtalk_compile/2 -
-

logtalk_compile/2

-
+ + +

logtalk_compile/2

+

Description

-
-logtalk_compile(Entity, Options)
-logtalk_compile(Entities, Options)
-
+
logtalk_compile(Entity, Options)
+logtalk_compile(Entities, Options)

Compiles to disk an entity or a list of entities (objects, protocols, or categories) using a list of options. The Logtalk file name extension (by default, .lgt) should be omitted. Note that the first argument is a list of entity/file names, not file paths. In other words, the files must exist in your current working directory.

@@ -38,9 +40,7 @@ Note that only the errors related to problems in the predicate arguments are lis

Template and modes

-
-logtalk_compile(@atom_or_atom_list, @list)
-
+
logtalk_compile(@atom_or_atom_list, @list)

Errors

@@ -69,22 +69,21 @@ logtalk_compile(@atom_or_atom_list, @list)

Examples

-
-| ?- logtalk_compile(list, []).
+
| ?- logtalk_compile(list, []).
 
-| ?- logtalk_compile([listp, list], [xml(off), plredf(warning)]).
-
+| ?- logtalk_compile([listp, list], [xml(off), plredf(warning)]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: January 10, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/logtalk_load1.html b/Logtalk/manuals/refman/builtins/logtalk_load1.html index 88e851a2d..370356603 100644 --- a/Logtalk/manuals/refman/builtins/logtalk_load1.html +++ b/Logtalk/manuals/refman/builtins/logtalk_load1.html @@ -1,29 +1,31 @@ - + - logtalk_load/1 + + Logtalk built-in predicate: logtalk_load/1 -
-

logtalk_load/1

-
+ + +

logtalk_load/1

+

Description

-
-logtalk_load(Entity)
-logtalk_load(Entities)
-
+
logtalk_load(Entity)
+logtalk_load(Entities)

Compiles to disk and then loads to memory an entity or a list of entities (objects, protocols or categories) using the default compiler options specified in the Logtalk configuration file. The Logtalk file name extension (by default, .lgt) should be omitted. Note that the argument is a list of entity/file names, not file paths. In other words, the files must exist in your current working directory.

@@ -35,9 +37,7 @@ Note that only the errors related to problems in the predicate argument are list

Template and modes

-
-logtalk_load(@atom_or_atom_list)
-
+
logtalk_load(@atom_or_atom_list)

Errors

@@ -60,22 +60,21 @@ logtalk_load(@atom_or_atom_list)

Examples

-
-| ?- logtalk_load(tree).
+
| ?- logtalk_load(tree).
 
-| ?- logtalk_load([listp, list]).
-
+| ?- logtalk_load([listp, list]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: January 10, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/logtalk_load2.html b/Logtalk/manuals/refman/builtins/logtalk_load2.html index e23199013..e54da65e5 100644 --- a/Logtalk/manuals/refman/builtins/logtalk_load2.html +++ b/Logtalk/manuals/refman/builtins/logtalk_load2.html @@ -1,29 +1,31 @@ - + - logtalk_load/2 + + Logtalk built-in predicate: logtalk_load/2 -
-

logtalk_load/2

-
+ + +

logtalk_load/2

+

Description

-
-logtalk_load(Entity, Options)
-logtalk_load(Entities, Options)
-
+
logtalk_load(Entity, Options)
+logtalk_load(Entities, Options)

Compiles to disk and then loads to memory an entity or a list of entities (objects, protocols or categories) using a list of options. The Logtalk file name extension (by default, .lgt) should be omitted. Note that the first argument is a list of entity/file names, not file paths. In other words, the files must exist in your current working directory.

@@ -38,9 +40,7 @@ Note that only the errors related to problems in the predicate arguments are lis

Template and modes

-
-logtalk_load(@atom_or_atom_list, @list)
-
+
logtalk_load(@atom_or_atom_list, @list)

Errors

@@ -69,22 +69,21 @@ logtalk_load(@atom_or_atom_list, @list)

Examples

-
-| ?- logtalk_load(list, []).
+
| ?- logtalk_load(list, []).
 
-| ?- logtalk_load([listp, list], [xml(off), plredf(warning)]).
-
+| ?- logtalk_load([listp, list], [xml(off), plredf(warning)]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: January 10, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/logtalk_version3.html b/Logtalk/manuals/refman/builtins/logtalk_version3.html index 640c4dade..e0eca1374 100644 --- a/Logtalk/manuals/refman/builtins/logtalk_version3.html +++ b/Logtalk/manuals/refman/builtins/logtalk_version3.html @@ -1,28 +1,30 @@ - + - logtalk_version/3 + + Logtalk built-in predicate: logtalk_version/3 -
-

logtalk_version/3

-
+ + +

logtalk_version/3

+

Description

-
-logtalk_version(Major, Minor, Patch)
-
+
logtalk_version(Major, Minor, Patch)

Returns the Logtalk preprocessor and runtime version.

@@ -31,9 +33,7 @@ logtalk_version(Major, Minor, Patch)

Template and modes

-
-logtalk_version(?integer, ?integer, ?integer)
-
+
logtalk_version(?integer, ?integer, ?integer)

Errors

@@ -52,20 +52,19 @@ logtalk_version(?integer, ?integer, ?integer)

Examples

-
-| ?- logtalk_version(Major, Minor, Patch).
-
+
| ?- logtalk_version(Major, Minor, Patch).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/object_property2.html b/Logtalk/manuals/refman/builtins/object_property2.html index 95836769f..259dd0c9b 100644 --- a/Logtalk/manuals/refman/builtins/object_property2.html +++ b/Logtalk/manuals/refman/builtins/object_property2.html @@ -1,28 +1,30 @@ - + - object_property/2 + + Logtalk built-in predicate: object_property/2 -
-

object_property/2

-
+ + +

object_property/2

+

Description

-
-object_property(Object, Property)
-
+
object_property(Object, Property)

Enumerates, by backtracking, the properties associated with the defined objects.

@@ -31,9 +33,7 @@ object_property(Object, Property)

Template and modes

-
-object_property(?object_identifier, ?object_property)
-
+
object_property(?object_identifier, ?object_property)

Errors

@@ -50,20 +50,19 @@ object_property(?object_identifier, ?object_property)

Examples

-
-| ?- object_property(list, Property).
-
+
| ?- object_property(list, Property).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/protocol_property2.html b/Logtalk/manuals/refman/builtins/protocol_property2.html index 7b9228b58..5aec51e38 100644 --- a/Logtalk/manuals/refman/builtins/protocol_property2.html +++ b/Logtalk/manuals/refman/builtins/protocol_property2.html @@ -1,28 +1,30 @@ - + - protocol_property/2 + + Logtalk built-in predicate: protocol_property/2 -
-

protocol_property/2

-
+ + +

protocol_property/2

+

Description

-
-protocol_property(Protocol, Property)
-
+
protocol_property(Protocol, Property)

Enumerates, by backtracking, the properties associated with the currently defined protocols.

@@ -31,9 +33,7 @@ protocol_property(Protocol, Property)

Template and modes

-
-protocol_property(?protocol_identifier, ?protocol_property)
-
+
protocol_property(?protocol_identifier, ?protocol_property)

Errors

@@ -50,20 +50,19 @@ protocol_property(?protocol_identifier, ?protocol_property)

Examples

-
-| ?- protocol_property(listp, Property).
-
+
| ?- protocol_property(listp, Property).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/retractall1.html b/Logtalk/manuals/refman/builtins/retractall1.html index 849615f0f..60da142fb 100644 --- a/Logtalk/manuals/refman/builtins/retractall1.html +++ b/Logtalk/manuals/refman/builtins/retractall1.html @@ -1,28 +1,30 @@ - + - retractall/1 + + Logtalk built-in predicate: retractall/1 -
-

retractall/1

-
+ + +

retractall/1

+

Description

-
-retractall(Head)
-
+
retractall(Head)

Logtalk adds this built-in predicate, with the usual definition, to a Prolog compiler if it is not already defined.

@@ -31,9 +33,7 @@ retractall(Head)

Template and modes

-
-retractall(+callable)
-
+
retractall(+callable)

Errors

@@ -48,20 +48,19 @@ retractall(+callable)

Examples

-
-| ?- retractall(foo(_)).
-
+
| ?- retractall(foo(_)).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: September 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/set_logtalk_flag2.html b/Logtalk/manuals/refman/builtins/set_logtalk_flag2.html index 2b3ff409a..201967b0e 100644 --- a/Logtalk/manuals/refman/builtins/set_logtalk_flag2.html +++ b/Logtalk/manuals/refman/builtins/set_logtalk_flag2.html @@ -1,28 +1,30 @@ - + - set_logtalk_flag/2 + + Logtalk built-in predicate: set_logtalk_flag/2 -
-

set_logtalk_flag/2

-
+ + +

set_logtalk_flag/2

+

Description

-
-set_logtalk_flag(Flag, Value)
-
+
set_logtalk_flag(Flag, Value)

Sets Logtalk flag values.

@@ -31,9 +33,7 @@ set_logtalk_flag(Flag, Value)

Template and modes

-
-set_logtalk_flag(+atom, +atom)
-
+
set_logtalk_flag(+atom, +atom)

Errors

@@ -58,20 +58,19 @@ set_logtalk_flag(+atom, +atom)

Examples

-
-| ?- set_logtalk_flag(xml, on).
-
+
| ?- set_logtalk_flag(xml, on).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/builtins/specializes_class2_3.html b/Logtalk/manuals/refman/builtins/specializes_class2_3.html index 25477091c..f66c2f5a4 100644 --- a/Logtalk/manuals/refman/builtins/specializes_class2_3.html +++ b/Logtalk/manuals/refman/builtins/specializes_class2_3.html @@ -1,30 +1,32 @@ - + - specializes_class/2-3 + + Logtalk built-in predicate: specializes_class/2-3 -
-

specializes_class/2-3

-
+ + +

specializes_class/2-3

+

Description

-
-specializes_class(Class, Superclass)
+
specializes_class(Class, Superclass)
 
-specializes_class(Class, Superclass, Scope)
-
+specializes_class(Class, Superclass, Scope)

Enumerates, by backtracking, all pairs of objects such that the first one specializes the second.

@@ -33,11 +35,9 @@ specializes_class(Class, Superclass, Scope)

Template and modes

-
-specializes_class(?object_identifier, ?object_identifier)
+
specializes_class(?object_identifier, ?object_identifier)
 
-specializes_class(?object_identifier, ?object_identifier, ?scope)
-
+specializes_class(?object_identifier, ?object_identifier, ?scope)

Errors

@@ -56,22 +56,21 @@ specializes_class(?object_identifier, ?object_identifier, ?scope)

Examples

-
-| ?- specializes_class(Subclass, state_space).
+
| ?- specializes_class(Subclass, state_space).
 
-| ?- specializes_class(Subclass, state_space, public).
-
+| ?- specializes_class(Subclass, state_space, public).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/control/external1.html b/Logtalk/manuals/refman/control/external1.html index 10a8b3d1e..f441070fe 100644 --- a/Logtalk/manuals/refman/control/external1.html +++ b/Logtalk/manuals/refman/control/external1.html @@ -1,28 +1,30 @@ - + - {}/1 + + Logtalk control construct: {}/1 -
-

{}/1

-
+ + +

{}/1

+

Description

-
-{Goal}
-
+
{Goal}

Calls external Prolog code. Can be used to bypass the Logtalk preprocessor/compiler.

@@ -31,9 +33,7 @@

Template and modes

-
-{+callable}
-
+
{+callable}

Errors

@@ -47,21 +47,20 @@

Examples

-
-N1/D1 < N2/D2 :-
-    {N1*D2 < N2*D1}.
-
+
N1/D1 < N2/D2 :-
+    {N1*D2 < N2*D1}.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/control/to_object2.html b/Logtalk/manuals/refman/control/to_object2.html index 63e9f7e09..114ca7ab9 100644 --- a/Logtalk/manuals/refman/control/to_object2.html +++ b/Logtalk/manuals/refman/control/to_object2.html @@ -1,28 +1,30 @@ - + - ::/2 + + Logtalk control construct: ::/2 -
+ + +

::/2

-

::/2

-

Description

-
-Object::Predicate
+
Object::Predicate
 
 (Object1, Object2, ...)::Predicate
 
@@ -30,8 +32,7 @@ Object::Predicate
 
 Object::(Predicate1, Predicate2, ...)
 
-Object::(Predicate1; Predicate2; ...)
-
+Object::(Predicate1; Predicate2; ...)

Sends a message to an object. The message argument must match a public predicate of the receiver object. We can also send the same message to a set of objects or a set of messages to the same object. The "," and ";" in the list have the usual Prolog meaning.

@@ -40,9 +41,7 @@ Sends a message to an object. The message argument must match a public predicate

Template and modes

-
-+receivers::+messages
-
+
+receivers::+messages

Errors

@@ -65,20 +64,19 @@ Sends a message to an object. The message argument must match a public predicate

Examples

-
-| ?- list::member(X, [1, 2, 3]).
-
+
| ?- list::member(X, [1, 2, 3]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/control/to_self1.html b/Logtalk/manuals/refman/control/to_self1.html index fccacc446..58001f9f9 100644 --- a/Logtalk/manuals/refman/control/to_self1.html +++ b/Logtalk/manuals/refman/control/to_self1.html @@ -1,32 +1,34 @@ - + - ::/1 + + Logtalk control construct: ::/1 -
-

::/1

-
+ + +

::/1

+

Description

-
-::Predicate
+
::Predicate
 
 ::(Predicate1, Predicate2, ...)
 
-::(Predicate1; Predicate2; ...)
-
+::(Predicate1; Predicate2; ...)

Send a message to self. Only used in the body of a predicate definition. The argument should match a public or protected predicate of self. It may also match a private predicate if the predicate is imported from a category, if used from inside a category, or when using private inheritance. We can also send a set of messages to self. The "," and ";" in the list have the usual Prolog meaning.

@@ -35,9 +37,7 @@

Template and modes

-
-::+messages
-
+
::+messages

Errors

@@ -56,23 +56,22 @@

Examples

-
-area(Area) :-
+
area(Area) :-
     ::width(Width),
     ::height(Height),
-    Area is Width*Height.
-
+ Area is Width*Height.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/control/to_super1.html b/Logtalk/manuals/refman/control/to_super1.html index f89caa0de..b2cbdabfa 100644 --- a/Logtalk/manuals/refman/control/to_super1.html +++ b/Logtalk/manuals/refman/control/to_super1.html @@ -1,28 +1,30 @@ - + - ^^/1 + + Logtalk control construct: ^^/1 -
-

^^/1

-
+ + +

^^/1

+

Description

-
-^^Predicate
-
+
^^Predicate

Calls a redefined/inherited definition for a message. Normally only used in the body of a predicate definition for the message. Predicate should match a public or protected predicate of self or be within the scope of this.

@@ -31,9 +33,7 @@

Template and modes

-
-^^+message
-
+
^^+message

Errors

@@ -54,22 +54,21 @@

Examples

-
-init :-
+
init :-
         assertz(counter(0)),
-        ^^init.
-
+ ^^init.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/calls1.html b/Logtalk/manuals/refman/directives/calls1.html index 07e4b2a4a..3282fd528 100644 --- a/Logtalk/manuals/refman/directives/calls1.html +++ b/Logtalk/manuals/refman/directives/calls1.html @@ -1,30 +1,32 @@ - + - calls/1 + + Logtalk entity directive: calls/1 -
-

calls/1

-
+ + +

calls/1

+

Description

-
-calls(Protocol)
+
calls(Protocol)
 calls(Protocol1, Protocol2, ...)
-calls([Protocol1, Protocol2, ...])
-
+calls([Protocol1, Protocol2, ...])

Declares the protocol(s) that are called by predicates defined in an object or category.

@@ -33,29 +35,26 @@ calls([Protocol1, Protocol2, ...])

Template and modes

-
-calls(+protocol_identifiers)
-
+
calls(+protocol_identifiers)

Examples

-
-:- calls(comparingp).
-
+
:- calls(comparingp).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/category1_2.html b/Logtalk/manuals/refman/directives/category1_2.html index b3b215f96..902423303 100644 --- a/Logtalk/manuals/refman/directives/category1_2.html +++ b/Logtalk/manuals/refman/directives/category1_2.html @@ -1,31 +1,33 @@ - + - category/1-2 + + Logtalk entity directive: category/1-2 -
-

category/1-2

-
+ + +

category/1-2

+

Description

-
-category(Category)
+
category(Category)
 
 category(Category,
-    implements(Protocols))
-
+ implements(Protocols))

Starting category directive.

@@ -34,38 +36,35 @@ category(Category,

Template and modes

-
-category(+category_identifier)
+
category(+category_identifier)
 
 category(+category_identifier,
-    implements(+implemented_protocols))
-
+ implements(+implemented_protocols))

Examples

-
-:- category(monitoring).
+
:- category(monitoring).
 
 :- category(monitoring,
     implements(monitoringp)).
 
 :- category(attributes,
-    implements(protected::variables)).
-
+ implements(protected::variables)).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/discontiguous1.html b/Logtalk/manuals/refman/directives/discontiguous1.html index f50fff9a6..e461dae91 100644 --- a/Logtalk/manuals/refman/directives/discontiguous1.html +++ b/Logtalk/manuals/refman/directives/discontiguous1.html @@ -1,30 +1,32 @@ - + - discontiguous/1 + + Logtalk predicate directive: discontiguous/1 -
-

discontiguous/1

-
+ + +

discontiguous/1

+

Description

-
-discontiguous(Predicate)
+
discontiguous(Predicate)
 discontiguous(Predicate1, Predicate2, ...)
-discontiguous([Predicate1, Predicate2, ...])
-
+discontiguous([Predicate1, Predicate2, ...])

Declares discontiguous predicates.

@@ -33,33 +35,30 @@ discontiguous([Predicate1, Predicate2, ...])

Template and modes

-
-discontiguous(+predicate_indicator_term)
-
+
discontiguous(+predicate_indicator_term)

Examples

-
-:- discontiguous(counter/1).
+
:- discontiguous(counter/1).
 
 :- discontiguous(lives/2, works/2).
 
-:- discontiguous([db/4, key/2, file/3]).
-
+:- discontiguous([db/4, key/2, file/3]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/dynamic0.html b/Logtalk/manuals/refman/directives/dynamic0.html index 1a31a74fc..79f9108a8 100644 --- a/Logtalk/manuals/refman/directives/dynamic0.html +++ b/Logtalk/manuals/refman/directives/dynamic0.html @@ -1,28 +1,30 @@ - + - dynamic/0 + + Logtalk entity directive: dynamic/0 -
-

dynamic/0

-
+ + +

dynamic/0

+

Description

-
-dynamic
-
+
dynamic

Declares an entity and all of its clauses dynamic.

@@ -31,29 +33,26 @@ Declares an entity and all of its clauses dynamic.

Template and modes

-
-dynamic
-
+
dynamic

Examples

-
-:- dynamic.
-
+
:- dynamic.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/dynamic1.html b/Logtalk/manuals/refman/directives/dynamic1.html index 91dc6b55e..a075d24f4 100644 --- a/Logtalk/manuals/refman/directives/dynamic1.html +++ b/Logtalk/manuals/refman/directives/dynamic1.html @@ -1,30 +1,32 @@ - + - dynamic/1 + + Logtalk predicate directive: dynamic/1 -
-

dynamic/1

-
+ + +

dynamic/1

+

Description

-
-dynamic(Predicate)
+
dynamic(Predicate)
 dynamic(Predicate1, Predicate2, ...)
-dynamic([Predicate1, Predicate2, ...])
-
+dynamic([Predicate1, Predicate2, ...])

Declares dynamic predicates. Note that an object can be static and have both static and dynamic predicates.

@@ -33,33 +35,30 @@ dynamic([Predicate1, Predicate2, ...])

Template and modes

-
-dynamic(+predicate_indicator_term)
-
+
dynamic(+predicate_indicator_term)

Examples

-
-:- dynamic(counter/1).
+
:- dynamic(counter/1).
 
 :- dynamic(lives/2, works/2).
 
-:- dynamic([db/4, key/2, file/3]).
-
+:- dynamic([db/4, key/2, file/3]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/end_category0.html b/Logtalk/manuals/refman/directives/end_category0.html index 7081fe529..9fda3b488 100644 --- a/Logtalk/manuals/refman/directives/end_category0.html +++ b/Logtalk/manuals/refman/directives/end_category0.html @@ -1,28 +1,30 @@ - + - end_category/0 + + Logtalk entity directive: end_category/0 -
-

end_category/0

-
+ + +

end_category/0

+

Description

-
-end_category
-
+
end_category

Ending category directive.

@@ -31,29 +33,26 @@ end_category

Template and modes

-
-end_category
-
+
end_category

Examples

-
-:- end_category.
-
+
:- end_category.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/end_object0.html b/Logtalk/manuals/refman/directives/end_object0.html index 2cdfcee36..dedf97190 100644 --- a/Logtalk/manuals/refman/directives/end_object0.html +++ b/Logtalk/manuals/refman/directives/end_object0.html @@ -1,28 +1,30 @@ - + - end_object/0 + + Logtalk entity directive: end_object/0 -
-

end_object/0

-
+ + +

end_object/0

+

Description

-
-end_object
-
+
end_object

Ending object directive.

@@ -31,29 +33,26 @@ end_object

Template and modes

-
-end_object
-
+
end_object

Examples

-
-:- end_object.
-
+
:- end_object.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/end_protocol0.html b/Logtalk/manuals/refman/directives/end_protocol0.html index 536a1d167..bb61d926d 100644 --- a/Logtalk/manuals/refman/directives/end_protocol0.html +++ b/Logtalk/manuals/refman/directives/end_protocol0.html @@ -1,28 +1,30 @@ - + - end_protocol/0 + + Logtalk entity directive: end_protocol/0 -
-

end_protocol/0

-
+ + +

end_protocol/0

+

Description

-
-end_protocol
-
+
end_protocol

Ending protocol directive.

@@ -31,29 +33,26 @@ end_protocol

Template and modes

-
-end_protocol
-
+
end_protocol

Examples

-
-:- end_protocol.
-
+
:- end_protocol.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/info1.html b/Logtalk/manuals/refman/directives/info1.html index 60fa648de..5c30bdb71 100644 --- a/Logtalk/manuals/refman/directives/info1.html +++ b/Logtalk/manuals/refman/directives/info1.html @@ -1,28 +1,30 @@ - + - info/1 + + Logtalk entity directive: info/1 -
-

info/1

-
+ + +

info/1

+

Description

-
-info(List)
-
+
info(List)

Documentation directive for objects, protocols, and categories.

@@ -31,33 +33,30 @@ info(List)

Template and modes

-
-info(+info_list)
-
+
info(+info_list)

Examples

-
-:- info([
+
:- info([
     version is 1.0,
     author is 'Paulo Moura',
     date is 2000/4/20,
-    comment is 'List protocol.']).
-
+ comment is 'List protocol.']).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: January 29, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/info2.html b/Logtalk/manuals/refman/directives/info2.html index bd56afa87..ffa76a19a 100644 --- a/Logtalk/manuals/refman/directives/info2.html +++ b/Logtalk/manuals/refman/directives/info2.html @@ -1,29 +1,30 @@ - + - info/2 + + Logtalk predicate directive: info/2 -
+ + +

info/2

-

info/2

-

Description

-
-info(Functor/Arity, List)
-
+
info(Functor/Arity, List)

Documentation directive for predicates.

@@ -32,31 +33,27 @@ info(Functor/Arity, List)

Template and modes

-
-info(+predicate_indicator, +info_list)
-
+
info(+predicate_indicator, +info_list)

Examples

-
-:- info(empty/1, [
+
:- info(empty/1, [
     comment is 'True if the argument is an empty list.',
-    argnames is ['List']]).
-
+ argnames is ['List']]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

+ -
+ + - diff --git a/Logtalk/manuals/refman/directives/initialization1.html b/Logtalk/manuals/refman/directives/initialization1.html index 96f3763e6..9642a6408 100644 --- a/Logtalk/manuals/refman/directives/initialization1.html +++ b/Logtalk/manuals/refman/directives/initialization1.html @@ -1,28 +1,30 @@ - + - initialization/1 + + Logtalk entity directive: initialization/1 -
-

initialization/1

-
+ + +

initialization/1

+

Description

-
-initialization(Goal)
-
+
initialization(Goal)

Sets a goal to be called immediately after the container entity has been loaded to memory.

@@ -31,29 +33,26 @@ initialization(Goal)

Template and modes

-
-initialization(@goal)
-
+
initialization(@goal)

Examples

-
-:- initialization(init).
-
+
:- initialization(init).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: December 31, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/metapredicate1.html b/Logtalk/manuals/refman/directives/metapredicate1.html index 7afd7ea0b..b8dcaa396 100644 --- a/Logtalk/manuals/refman/directives/metapredicate1.html +++ b/Logtalk/manuals/refman/directives/metapredicate1.html @@ -1,28 +1,30 @@ - + - metapredicate/1 + + Logtalk predicate directive: metapredicate/1 -
-

metapredicate/1

-
+ + +

metapredicate/1

+

Description

-
-metapredicate(Metapredicate)
-
+
metapredicate(Metapredicate)

Declares metapredicates, i.e., predicates that have arguments that will be called as goals.

@@ -31,31 +33,28 @@ metapredicate(Metapredicate)

Template and modes

-
-metapredicate(+metapredicate_predicate_term)
-
+
metapredicate(+metapredicate_predicate_term)

Examples

-
-:- metapredicate(findall(*, ::, *)).
+
:- metapredicate(findall(*, ::, *)).
 
-:- metapredicate(forall(::, ::)).
-
+:- metapredicate(forall(::, ::)).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/mode2.html b/Logtalk/manuals/refman/directives/mode2.html index 4fc424a57..b1cd95cc7 100644 --- a/Logtalk/manuals/refman/directives/mode2.html +++ b/Logtalk/manuals/refman/directives/mode2.html @@ -1,29 +1,30 @@ - + - mode/2 + + Logtalk predicate directive: mode/2 -
+ + +

mode/2

-

mode/2

-

Description

-
-mode(Mode, Number_of_solutions)
-
+
mode(Mode, Number_of_solutions)

Most predicates can be used with several instantiations modes. This directive enables the specification of each instantiation mode and the corresponding number of solutions/proofs.

@@ -32,35 +33,31 @@ mode(Mode, Number_of_solutions)

Template and modes

-
-mode(+predicate_mode_term, +number_of_solutions)
-
+
mode(+predicate_mode_term, +number_of_solutions)

Examples

-
-:- mode(append(-, -, +), zero_or_more).
+
:- mode(append(-, -, +), zero_or_more).
 
 :- mode(append(+list, +list, -list), zero_or_one).
 
 :- mode(var(@term), zero_or_one).
 
-:- mode(arg(-, -, +), error).
-
+:- mode(arg(-, -, +), error).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

+ -
+ + - diff --git a/Logtalk/manuals/refman/directives/object1_5.html b/Logtalk/manuals/refman/directives/object1_5.html index ce17bfcc2..cbfbe9c4b 100644 --- a/Logtalk/manuals/refman/directives/object1_5.html +++ b/Logtalk/manuals/refman/directives/object1_5.html @@ -1,21 +1,25 @@ - + - object/1-4 + + Logtalk entity directive: object/1-4 -
-

object/1-5

-
+ + +

object/1-5

+

Description

@@ -23,8 +27,7 @@

Stand-alone objects

-
-object(Object)
+
object(Object)
 
 object(Object,
     implements(Protocols))
@@ -34,13 +37,11 @@ object(Object,
 
 object(Object,
     implements(Protocols),
-    imports(Categories))
-
+ imports(Categories))

Prototypes

-
-object(Object,
+
object(Object,
     extends(Objects))
 
 object(Object,
@@ -54,13 +55,11 @@ object(Object,
 object(Object,
     implements(Protocols),
     imports(Categories),
-    extends(Objects))
-
+ extends(Objects))

Instances

-
-object(Object,
+
object(Object,
     instantiates(Classes))
 
 object(Object,
@@ -74,13 +73,11 @@ object(Object,
 object(Object,
     implements(Protocols),
     imports(Categories),
-    instantiates(Classes))
-
+ instantiates(Classes))

Classes

-
-object(Object,
+
object(Object,
     specializes(Classes))
 
 object(Object,
@@ -94,13 +91,11 @@ object(Object,
 object(Object,
     implements(Protocols),
     imports(Categories),
-    specializes(Classes))
-
+ specializes(Classes))

Metaclasses

-
-object(Object,
+
object(Object,
     instantiates(Classes),
     specializes(Classes))
 
@@ -118,8 +113,7 @@ object(Object,
     implements(Protocols),
     imports(Categories),
     instantiates(Classes),
-    specializes(Classes))
-
+ specializes(Classes))

Starting object directive.

@@ -132,8 +126,7 @@ object(Object,

Stand-alone objects

-
-object(+object_identifier)
+
object(+object_identifier)
 
 object(+object_identifier,
     implements(+implemented_protocols))
@@ -143,13 +136,11 @@ object(+object_identifier,
 
 object(+object_identifier,
     implements(+implemented_protocols),
-    imports(+imported_categories))
-
+ imports(+imported_categories))

Prototypes

-
-object(+object_identifier,
+
object(+object_identifier,
     extends(+extended_objects))
 
 object(+object_identifier,
@@ -163,13 +154,11 @@ object(+object_identifier,
 object(+object_identifier,
     implements(+implemented_protocols),
     imports(+imported_categories),
-    extends(+extended_objects))
-
+ extends(+extended_objects))

Instances

-
-object(+object_identifier,
+
object(+object_identifier,
     instantiates(+instantiated_objects))
 
 object(+object_identifier,
@@ -183,13 +172,11 @@ object(+object_identifier,
 object(+object_identifier,
     implements(+implemented_protocols),
     imports(+imported_categories),
-    instantiates(+instantiated_objects))
-
+ instantiates(+instantiated_objects))

Classes

-
-object(+object_identifier,
+
object(+object_identifier,
     specializes(+specialized_objects))
 
 object(+object_identifier,
@@ -203,13 +190,11 @@ object(+object_identifier,
 object(+object_identifier,
     implements(+implemented_protocols),
     imports(+imported_categories),
-    specializes(+specialized_objects))
-
+ specializes(+specialized_objects))

Metaclasses

-
-object(+object_identifier,
+
object(+object_identifier,
     instantiates(+instantiated_objects),
     specializes(+specialized_objects))
 
@@ -227,16 +212,14 @@ object(+object_identifier,
     implements(+implemented_protocols),
     imports(+imported_categories),
     instantiates(+instantiated_objects),
-    specializes(+specialized_objects))
-
+ specializes(+specialized_objects))

Examples

-
-:- object(list).
+
:- object(list).
 
 :- object(list,
     implements(listp)).
@@ -257,19 +240,19 @@ object(+object_identifier,
     specializes(object)).
 
 :- object(agent,
-    imports(private::attributes)).
-
+ imports(private::attributes)).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: December 31, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/op3.html b/Logtalk/manuals/refman/directives/op3.html index c9e32adb8..0549f6baf 100644 --- a/Logtalk/manuals/refman/directives/op3.html +++ b/Logtalk/manuals/refman/directives/op3.html @@ -1,28 +1,30 @@ - + - op/3 + + Logtalk entity directive: op/3 -
-

op/3

-
+ + +

op/3

+

Description

-
-op(Precedence, Associativity, Operator)
-
+
op(Precedence, Associativity, Operator)

Declares operators.

@@ -31,32 +33,29 @@ op(Precedence, Associativity, Operator)

Template and modes

-
-op(+integer, +associativity, +atom)
-
+
op(+integer, +associativity, +atom)

Examples

-
-:- op(950, fx, +).
+
:- op(950, fx, +).
 :- op(950, fx, ?).
 :- op(950, fx, @).
-:- op(950, fx, -).
-
+:- op(950, fx, -).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/private1.html b/Logtalk/manuals/refman/directives/private1.html index 2292f7fa2..a57d0faf7 100644 --- a/Logtalk/manuals/refman/directives/private1.html +++ b/Logtalk/manuals/refman/directives/private1.html @@ -1,30 +1,32 @@ - + - private/1 + + Logtalk predicate directive: private/1 -
-

private/1

-
+ + +

private/1

+

Description

-
-private(Predicate)
+
private(Predicate)
 private(Predicate1, Predicate2, ...)
-private([Predicate1, Predicate2, ...])
-
+private([Predicate1, Predicate2, ...])

Declares private predicates. A private predicate can only be called from the object containing the private directive.

@@ -33,32 +35,29 @@ private([Predicate1, Predicate2, ...])

Template and modes

-
-private(+predicate_indicator_term)
-
+
private(+predicate_indicator_term)

Examples

-
-:- private(counter/1).
+
:- private(counter/1).
 
 :- private(init/1, free/1).
 
-:- private([data/3, key/1, keys/1]).
-
+:- private([data/3, key/1, keys/1]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/protected1.html b/Logtalk/manuals/refman/directives/protected1.html index 49c86b932..200c2d30c 100644 --- a/Logtalk/manuals/refman/directives/protected1.html +++ b/Logtalk/manuals/refman/directives/protected1.html @@ -1,30 +1,32 @@ - + - protected/1 + + Logtalk predicate directive: protected/1 -
-

protected/1

-
+ + +

protected/1

+

Description

-
-protected(Predicate)
+
protected(Predicate)
 protected(Predicate1, Predicate2, ...)
-protected([Predicate1, Predicate2, ...])
-
+protected([Predicate1, Predicate2, ...])

Declares protected predicates. A protected predicate can only be called from the object containing the declaration or from an object that inherits the declaration.

@@ -33,33 +35,30 @@ protected([Predicate1, Predicate2, ...])

Template and modes

-
-protected(+predicate_indicator_term)
-
+
protected(+predicate_indicator_term)

Examples

-
-:- protected(init/1).
+
:- protected(init/1).
 
 :- protected(print/2, convert/4).
 
-:- protected([load/1, save/3]).
-
+:- protected([load/1, save/3]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/protocol1_2.html b/Logtalk/manuals/refman/directives/protocol1_2.html index b3769f727..640e5faa2 100644 --- a/Logtalk/manuals/refman/directives/protocol1_2.html +++ b/Logtalk/manuals/refman/directives/protocol1_2.html @@ -1,31 +1,33 @@ - + - protocol/1-2 + + Logtalk predicate directive: protocol/1-2 -
-

protocol/1-2

-
+ + +

protocol/1-2

+

Description

-
-protocol(Protocol)
+
protocol(Protocol)
 
 protocol(Protocol,
-    extends(Protocols))
-
+ extends(Protocols))

Starting protocol directive.

@@ -34,38 +36,35 @@ protocol(Protocol,

Template and modes

-
-protocol(+protocol_identifier)
+
protocol(+protocol_identifier)
 
 protocol(+protocol_identifier,
-    extends(+extended_protocols))
-
+ extends(+extended_protocols))

Examples

-
-:- protocol(listp).
+
:- protocol(listp).
 
 :- protocol(listp,
     extends(compoundp)).
 
 :- protocol(queuep,
-    extends(protected::listp)).
-
+ extends(protected::listp)).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: December 31, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/public1.html b/Logtalk/manuals/refman/directives/public1.html index 5c4f1864d..5949b0bff 100644 --- a/Logtalk/manuals/refman/directives/public1.html +++ b/Logtalk/manuals/refman/directives/public1.html @@ -1,30 +1,32 @@ - + - public/1 + + Logtalk predicate directive: public/1 -
-

public/1

-
+ + +

public/1

+

Description

-
-public(Predicate)
+
public(Predicate)
 public(Predicate1, Predicate2, ...)
-public([Predicate1, Predicate2, ...])
-
+public([Predicate1, Predicate2, ...])

Declares public predicates. A public predicate can be called from any object.

@@ -33,33 +35,30 @@ public([Predicate1, Predicate2, ...])

Template and modes

-
-public(+predicate_indicator_term)
-
+
public(+predicate_indicator_term)

Examples

-
-:- public(ancestor/1).
+
:- public(ancestor/1).
 
 :- public(instance/1, instances/1).
 
-:- public([leaf/1, leaves/1]).
-
+:- public([leaf/1, leaves/1]).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/directives/uses1.html b/Logtalk/manuals/refman/directives/uses1.html index a48a1bbff..5591e7e96 100644 --- a/Logtalk/manuals/refman/directives/uses1.html +++ b/Logtalk/manuals/refman/directives/uses1.html @@ -1,30 +1,32 @@ - + - uses/1 + + Logtalk entity directive: uses/1 -
-

uses/1

-
+ + +

uses/1

+

Description

-
-uses(Object)
+
uses(Object)
 uses(Object1, Object2, ...)
-uses([Object1, Object2, ...])
-
+uses([Object1, Object2, ...])

Declares the object(s) that are sent messages by predicates defined in the category or object containing the directive.

@@ -33,29 +35,26 @@ uses([Object1, Object2, ...])

Template and modes

-
-uses(+object_identifiers)
-
+
uses(+object_identifiers)

Examples

-
-:- uses(list).
-
+
:- uses(list).
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/grammar.html b/Logtalk/manuals/refman/grammar.html index 00f0b0de3..99c3a1fef 100644 --- a/Logtalk/manuals/refman/grammar.html +++ b/Logtalk/manuals/refman/grammar.html @@ -1,27 +1,31 @@ - + + Logtalk Grammar -
-

Grammar

+ + +

Grammar

The Logtalk grammar is here described using Backus-Naur Form syntax. Non-terminal symbols in italics have the defintion found in the ISO Prolog Standard. Terminal symbols are represented in a fixed width font and between "".

-

Compilation units

+

Compilation units

@@ -32,7 +36,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Object definition

+

Object definition

@@ -78,7 +82,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Category definition

+

Category definition

@@ -96,7 +100,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Protocol definition

+

Protocol definition

@@ -114,7 +118,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Entity relations

+

Entity relations

@@ -142,7 +146,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
"specializes(" specialized_objects ")"
-

Implemented protocols

+

Implemented protocols

implemented_protocols ::=
@@ -166,7 +170,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Extended protocols

+

Extended protocols

extended_protocols ::=
@@ -190,7 +194,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Imported categories

+

Imported categories

imported_categories ::=
@@ -214,7 +218,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Extended objects

+

Extended objects

extended_objects ::=
@@ -238,7 +242,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Instantiated objects

+

Instantiated objects

instantiated_objects ::=
@@ -262,7 +266,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Specialized objects

+

Specialized objects

specialized_objects ::=
@@ -286,7 +290,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Entity scope

+

Entity scope

scope ::=
@@ -299,7 +303,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Entity identifiers

+

Entity identifiers

@@ -324,7 +328,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
"[" entity_identifier_sequence "]"
-

Object identifiers

+

Object identifiers

object_identifiers ::=
@@ -348,7 +352,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Category identifiers

+

Category identifiers

category_identifiers ::=
@@ -371,7 +375,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Protocol identifiers

+

Protocol identifiers

protocol_identifiers ::=
@@ -398,11 +402,11 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Directives

+

Directives

-

Object directives

+

Object directives

object_directives ::=
@@ -420,7 +424,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Category directives

+

Category directives

category_directives ::=
@@ -438,7 +442,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Protocol directives

+

Protocol directives

protocol_directives ::=
@@ -454,7 +458,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Predicate directives

+

Predicate directives

predicate_directives ::=
@@ -571,7 +575,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Clauses and goals

+

Clauses and goals

@@ -626,7 +630,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Entity properties

+

Entity properties

@@ -650,7 +654,7 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-

Predicate properties

+

Predicate properties

@@ -668,15 +672,16 @@ The Logtalk grammar is here described using Backus-Naur Form syntax. Non-termina
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: January 29, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/index.html b/Logtalk/manuals/refman/index.html index e3a7a779f..750ba564a 100644 --- a/Logtalk/manuals/refman/index.html +++ b/Logtalk/manuals/refman/index.html @@ -1,204 +1,256 @@ - + + Logtalk Reference Manual -
-

Reference Manual

-
+ -

Table of Contents

+

Reference Manual

-

Grammar

+

Grammar

-
-
Compilation units
-
Object definition
-
Category definition
-
Protocol definition
-
Entity relations
-
Implemented protocols
-
Extended protocols
-
Imported categories
-
Extended objects
-
Instantiated objects
-
Specialized objects
-
Entity scope
-
Entity identifiers
-
Object identifiers
-
Category identifiers
-
Protocol identifiers
-
Directives
-
Object directives
-
Category directives
-
Protocol directives
-
Predicate directives
-
Clauses
-
Entity properties
-
Predicate properties
-
+

Compilation units

-

Directives

+

Object definition

-
-
Entity directives
-
calls/1
-
category/1-2
-
dynamic/0
-
end_category/0
-
end_object/0
-
end_protocol/0
-
info/1
-
initialization/1
-
object/1-5
-
protocol/1-2
-
uses/1
-
-
-
Predicate directives
-
discontiguous/1
-
dynamic/1
-
info/2
-
metapredicate/1
-
mode/2
-
op/3
-
private/1
-
protected/1
-
public/1
-
+

Category definition

-

Built-in predicates

+

Protocol definition

-
-
Enumerating objects, categories and protocols
-
current_category/1
-
current_object/1
-
current_protocol/1
-
-
-
Enumerating objects, categories and protocols properties
-
category_property/2
-
object_property/2
-
protocol_property/2
-
-
-
Creating new objects, categories and protocols
-
create_category/4
-
create_object/4
-
create_protocol/3
-
-
-
Abolishing objects, categories and protocols
-
abolish_category/1
-
abolish_object/1
-
abolish_protocol/1
-
-
-
Objects, categories and protocols relations
-
extends_object/2-3
-
extends_protocol/2-3
-
implements_protocol/2-3
-
imports_category/2-3
-
instantiates_class/2-3
-
specializes_class/2-3
-
-
-
Event handling
-
abolish_events/5
-
current_event/5
-
define_events/5
-
-
-
Compiling and loading objects, categories and protocols
-
logtalk_compile/1
-
logtalk_compile/2
-
logtalk_load/1
-
logtalk_load/2
-
-
-
Flags
-
current_logtalk_flag/2
-
set_logtalk_flag/2
-
-
-
Others
-
forall/2
-
retractall/1
-
+

Entity relations

-

Built-in methods

+ -
-
Local methods
-
parameter/2
-
self/1
-
sender/1
-
this/1
-
-
-
Reflection methods
-
current_predicate/1
-
predicate_property/2
-
-
-
Database methods
-
abolish/1
-
asserta/1
-
assertz/1
-
clause/2
-
retract/1
-
retractall/1
-
-
-
All solutions methods
-
bagof/3
-
findall/3
-
forall/2
-
setof/3
-
-
-
Event handler methods
-
before/3
-
after/3
-
-
-
DCG rules parsing methods
-
phrase/2
-
phrase/3
-
+

Entity identifiers

-

Control constructs

+ -
-
Message sending
-
::/2
-
::/1
-
^^/1
-
-
-
Calling external code
-
{}/1
-
+

Directives

-
-

-User manual | Tutorial | Bibliography | Glossary -

-

-Last updated on: March 30, 2003 -

-
+ +

Clauses

+ +

Entity properties

+ +

Predicate properties

+ +

Directives

+ +

Entity directives

+ + + +

Predicate 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

+ + + +

Compiling and loading objects, categories and protocols

+ + + +

Flags

+ + + +

Others

+ + + +

Built-in methods

+ +

Local methods

+ + + +

Reflection methods

+ + + +

Database methods

+ + + +

All solutions methods

+ + + +

Event handler methods

+ + + +

DCG rules parsing methods

+ + + +

Control constructs

+ +

Message sending

+ + + +

Calling external code

+ + + + + + + + - diff --git a/Logtalk/manuals/refman/methods/abolish1.html b/Logtalk/manuals/refman/methods/abolish1.html index f4fbb387d..5e2139e1d 100644 --- a/Logtalk/manuals/refman/methods/abolish1.html +++ b/Logtalk/manuals/refman/methods/abolish1.html @@ -1,29 +1,31 @@ - + - abolish/1 + + Logtalk built-in method: abolish/1 -
-

abolish/1

-
+ + +

abolish/1

+

Description

-
-abolish(Predicate)
-abolish(Functor/Arity)
-
+
abolish(Predicate)
+abolish(Functor/Arity)

Removes a runtime declared dynamic predicate from an object database.

@@ -32,9 +34,7 @@ Removes a runtime declared dynamic predicate from an object database.

Template and modes

-
-abolish(+predicate_indicator)
-
+
abolish(+predicate_indicator)

Errors

@@ -75,15 +75,16 @@ abolish(+predicate_indicator)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/after3.html b/Logtalk/manuals/refman/methods/after3.html index c7b679384..1e3a31445 100644 --- a/Logtalk/manuals/refman/methods/after3.html +++ b/Logtalk/manuals/refman/methods/after3.html @@ -1,28 +1,30 @@ - + - after/3 + + Logtalk built-in method: after/3 -
-

after/3

-
+ + +

after/3

+

Description

-
-after(Object, Message, Sender)
-
+
after(Object, Message, Sender)

This is a pre-declared but user-defined public method for handling after events.

@@ -31,9 +33,7 @@ after(Object, Message, Sender)

Template and modes

-
-after(?object, ?term, ?object)
-
+
after(?object, ?term, ?object)

Errors

@@ -47,22 +47,21 @@ after(?object, ?term, ?object)

Examples

-
-after(Object, Message, Sender) :-
+
after(Object, Message, Sender) :-
     writeq(Object), write('::'), writeq(Message),
-    write(' from '), writeq(Sender), nl.
-
+ write(' from '), writeq(Sender), nl.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: March 18, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/asserta1.html b/Logtalk/manuals/refman/methods/asserta1.html index 321b30ac5..3fa5f6d20 100644 --- a/Logtalk/manuals/refman/methods/asserta1.html +++ b/Logtalk/manuals/refman/methods/asserta1.html @@ -1,29 +1,31 @@ - + - asserta/1 + + Logtalk built-in method: asserta/1 -
-

asserta/1

-
+ + +

asserta/1

+

Description

-
-asserta(Clause)
-asserta((Head:-Body))
-
+
asserta(Clause)
+asserta((Head:-Body))

Asserts a clause as the first one for an object's dynamic predicate. If the predicate is not already declared, then a dynamic predicate declaration is added to the object.

@@ -32,9 +34,7 @@ asserta((Head:-Body))

Template and modes

-
-asserta(+clause)
-
+
asserta(+clause)

Errors

@@ -71,15 +71,16 @@ asserta(+clause)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/assertz1.html b/Logtalk/manuals/refman/methods/assertz1.html index 4a600cea3..5b08c60eb 100644 --- a/Logtalk/manuals/refman/methods/assertz1.html +++ b/Logtalk/manuals/refman/methods/assertz1.html @@ -1,29 +1,31 @@ - + - assertz/1 + + Logtalk built-in method: assertz/1 -
-

assertz/1

-
+ + +

assertz/1

+

Description

-
-assertz(Clause)
-assertz((Head:-Body))
-
+
assertz(Clause)
+assertz((Head:-Body))

Asserts a clause as the last one for an object's dynamic predicate. If the predicate is not already declared, then a dynamic predicate declaration is added to the object.

@@ -32,9 +34,7 @@ assertz((Head:-Body))

Template and modes

-
-assertz(+clause)
-
+
assertz(+clause)

Errors

@@ -71,15 +71,16 @@ assertz(+clause)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/bagof3.html b/Logtalk/manuals/refman/methods/bagof3.html index ba0095e46..7ad481c78 100644 --- a/Logtalk/manuals/refman/methods/bagof3.html +++ b/Logtalk/manuals/refman/methods/bagof3.html @@ -1,28 +1,30 @@ - + - bagof/3 + + Logtalk built-in method: bagof/3 -
-

bagof/3

-
+ + +

bagof/3

+

Description

-
-bagof(Term, Goal, List)
-
+
bagof(Term, Goal, List)

(see the Prolog ISO standard definition)

@@ -31,9 +33,7 @@ bagof(Term, Goal, List)

Template and modes

-
-bagof(@term, +callable, -list)
-
+
bagof(@term, +callable, -list)

Errors

@@ -57,15 +57,16 @@ bagof(@term, +callable, -list)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/before3.html b/Logtalk/manuals/refman/methods/before3.html index 13b9e34e6..9b45ac0ee 100644 --- a/Logtalk/manuals/refman/methods/before3.html +++ b/Logtalk/manuals/refman/methods/before3.html @@ -1,28 +1,30 @@ - + - before/3 + + Logtalk built-in method: before/3 -
-

before/3

-
+ + +

before/3

+

Description

-
-before(Object, Message, Sender)
-
+
before(Object, Message, Sender)

This is a pre-declared but user-defined public method for handling before events.

@@ -31,9 +33,7 @@ before(Object, Message, Sender)

Template and modes

-
-before(?object, ?term, ?object)
-
+
before(?object, ?term, ?object)

Errors

@@ -47,22 +47,21 @@ before(?object, ?term, ?object)

Examples

-
-before(Object, Message, Sender) :-
+
before(Object, Message, Sender) :-
     writeq(Object), write('::'), writeq(Message),
-    write(' from '), writeq(Sender), nl.
-
+ write(' from '), writeq(Sender), nl.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/clause2.html b/Logtalk/manuals/refman/methods/clause2.html index 22e42a1ae..ba586c5d1 100644 --- a/Logtalk/manuals/refman/methods/clause2.html +++ b/Logtalk/manuals/refman/methods/clause2.html @@ -1,28 +1,30 @@ - + - clause/2 + + Logtalk built-in method: clause/2 -
-

clause/2

-
+ + +

clause/2

+

Description

-
-clause(Head, Body)
-
+
clause(Head, Body)

Enumerates, by backtracking, the clauses of an object's dynamic predicates.

@@ -31,9 +33,7 @@ Enumerates, by backtracking, the clauses of an object's dynamic predicates.

Template and modes

-
-clause(+callable, ?body)
-
+
clause(+callable, ?body)

Errors

@@ -70,15 +70,16 @@ clause(+callable, ?body)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/current_predicate1.html b/Logtalk/manuals/refman/methods/current_predicate1.html index 23f59b301..c7e3f15b2 100644 --- a/Logtalk/manuals/refman/methods/current_predicate1.html +++ b/Logtalk/manuals/refman/methods/current_predicate1.html @@ -1,28 +1,30 @@ - + - current_predicate/1 + + Logtalk built-in method: current_predicate/1 -
-

current_predicate/1

-
+ + +

current_predicate/1

+

Description

-
-current_predicate(Predicate)
-
+
current_predicate(Predicate)

Enumerates, by backtracking, the visible user predicates for an object.

@@ -31,9 +33,7 @@ current_predicate(Predicate)

Template and modes

-
-current_predicate(?predicate_indicator)
-
+
current_predicate(?predicate_indicator)

Errors

@@ -58,15 +58,16 @@ current_predicate(?predicate_indicator)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/findall3.html b/Logtalk/manuals/refman/methods/findall3.html index fc89ef101..0e770cc3f 100644 --- a/Logtalk/manuals/refman/methods/findall3.html +++ b/Logtalk/manuals/refman/methods/findall3.html @@ -1,28 +1,30 @@ - + - findall/3 + + Logtalk built-in method: findall/3 -
-

findall/3

-
+ + +

findall/3

+

Description

-
-findall(Term, Goal, List)
-
+
findall(Term, Goal, List)

(see the Prolog ISO standard definition)

@@ -31,9 +33,7 @@ findall(Term, Goal, List)

Template and modes

-
-findall(@term, +callable, -list)
-
+
findall(@term, +callable, -list)

Errors

@@ -57,15 +57,16 @@ findall(@term, +callable, -list)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/forall2.html b/Logtalk/manuals/refman/methods/forall2.html index 12733ab29..b48083017 100644 --- a/Logtalk/manuals/refman/methods/forall2.html +++ b/Logtalk/manuals/refman/methods/forall2.html @@ -1,29 +1,30 @@ - + - forall/2 + + Logtalk built-in method: forall/2 -
+ + +

forall/2

-

forall/2

-

Description

-
-forall(Generator, Test)
-
+
forall(Generator, Test)

For all solutions of Generator, Test is true.

@@ -32,9 +33,7 @@ forall(Generator, Test)

Template and modes

-
-forall(+callable, +callable)
-
+
forall(+callable, +callable)

Errors

@@ -63,15 +62,16 @@ forall(+callable, +callable)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/parameter2.html b/Logtalk/manuals/refman/methods/parameter2.html index f7bffb626..5c19462f9 100644 --- a/Logtalk/manuals/refman/methods/parameter2.html +++ b/Logtalk/manuals/refman/methods/parameter2.html @@ -1,28 +1,30 @@ - + - parameter/2 + + Logtalk built-in method: parameter/2 -
-

parameter/2

-
+ + +

parameter/2

+

Description

-
-parameter(Number, Term)
-
+
parameter(Number, Term)

Used only in parametric objects, this method returns parameter values by using the parameter position in the entity identifier. Note that this predicate implies an instantiation between its second argument and the corresponding implicit context argument in the predicate containing the call. This instantiation occurs at the clause head, not at the clause body. See also this/1.

@@ -31,9 +33,7 @@ parameter(Number, Term)

Template and modes

-
-parameter(+integer, ?term)
-
+
parameter(+integer, ?term)

Errors

@@ -54,27 +54,26 @@ parameter(+integer, ?term)

Examples

-
-:- object(box(_Colour)).
+
:- object(box(_Colour)).
 
     ...
     
     colour(Colour) :-
         parameter(1, Colour).
 
-    ...
-
+ ...
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: March 4, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/phrase2.html b/Logtalk/manuals/refman/methods/phrase2.html index c1c403187..03a837532 100644 --- a/Logtalk/manuals/refman/methods/phrase2.html +++ b/Logtalk/manuals/refman/methods/phrase2.html @@ -1,29 +1,30 @@ - + - phrase/2 + + Logtalk built-in method: phrase/2 -
+ + +

phrase/2

-

phrase/2

-

Description

-
-phrase(Ruleset, Input)
-
+
phrase(Ruleset, Input)

True if the list Input can be parsed using the specified Ruleset.

@@ -32,9 +33,7 @@ phrase(Ruleset, Input)

Template and modes

-
-phrase(+callable, ?list)
-
+
phrase(+callable, ?list)

Errors

@@ -56,15 +55,16 @@ phrase(+callable, ?list) (none)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: March 30, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/phrase3.html b/Logtalk/manuals/refman/methods/phrase3.html index 93a977b75..01f8b2929 100644 --- a/Logtalk/manuals/refman/methods/phrase3.html +++ b/Logtalk/manuals/refman/methods/phrase3.html @@ -1,28 +1,30 @@ - + - phrase/3 + + Logtalk built-in method: phrase/3 -
-

phrase/3

-
+ + +

phrase/3

+

Description

-
-phrase(Ruleset, Input, Rest)
-
+
phrase(Ruleset, Input, Rest)

True if the list Input can be parsed using the specified Ruleset. The list Rest is what remains of the list Input after parsing succeeded.

@@ -31,9 +33,7 @@ phrase(Ruleset, Input, Rest)

Template and modes

-
-phrase(+callable, ?list, ?list)
-
+
phrase(+callable, ?list, ?list)

Errors

@@ -57,15 +57,16 @@ phrase(+callable, ?list, ?list) (none)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: March 30, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/predicate_property2.html b/Logtalk/manuals/refman/methods/predicate_property2.html index 220d58f6b..83d979bee 100644 --- a/Logtalk/manuals/refman/methods/predicate_property2.html +++ b/Logtalk/manuals/refman/methods/predicate_property2.html @@ -1,28 +1,30 @@ - + - predicate_property/2 + + Logtalk built-in method: predicate_property/2 -
-

predicate_property/2

-
+ + +

predicate_property/2

+

Description

-
-predicate_property(Predicate, Property)
-
+
predicate_property(Predicate, Property)

Enumerates, by backtracking, the properties of a visible predicate.

@@ -31,9 +33,7 @@ predicate_property(Predicate, Property)

Template and modes

-
-predicate_property(+callable, ?predicate_property)
-
+
predicate_property(+callable, ?predicate_property)

Errors

@@ -62,15 +62,16 @@ predicate_property(+callable, ?predicate_property)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/retract1.html b/Logtalk/manuals/refman/methods/retract1.html index d7e5ffc23..27e2b6daf 100644 --- a/Logtalk/manuals/refman/methods/retract1.html +++ b/Logtalk/manuals/refman/methods/retract1.html @@ -1,29 +1,30 @@ - + - retract/1 + + Logtalk built-in method: retract/1 -
-

retract/1

-
+ + +

retract/1

Description

-
-retract(Clause)
-retract((Head:-Body))
-
+
retract(Clause)
+retract((Head:-Body))

Retracts a dynamic clause from an object.

@@ -32,9 +33,7 @@ retract((Head:-Body))

Template and modes

-
-retract(+clause)
-
+
retract(+clause)

Errors

@@ -69,15 +68,16 @@ retract(+clause)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/retractall1.html b/Logtalk/manuals/refman/methods/retractall1.html index f4b92842c..36640d642 100644 --- a/Logtalk/manuals/refman/methods/retractall1.html +++ b/Logtalk/manuals/refman/methods/retractall1.html @@ -1,28 +1,30 @@ - + - retractall/1 + + Logtalk built-in method: retractall/1 -
-

retractall/1

-
+ + +

retractall/1

+

Description

-
-retractall(Head)
-
+
retractall(Head)

Retracts all matching predicates from an object.

@@ -31,9 +33,7 @@ retractall(Head)

Template and modes

-
-retractall(+callable)
-
+
retractall(+callable)

Errors

@@ -68,15 +68,16 @@ retractall(+callable)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/self1.html b/Logtalk/manuals/refman/methods/self1.html index 433ffdb23..b6e88c481 100644 --- a/Logtalk/manuals/refman/methods/self1.html +++ b/Logtalk/manuals/refman/methods/self1.html @@ -1,28 +1,30 @@ - + - self/1 + + Logtalk built-in method: self/1 -
-

self/1

-
+ + +

self/1

+

Description

-
-self(Self)
-
+
self(Self)

Returns the object that has received the message under processing. Note that this predicate implies an instantiation between its argument and the corresponding implicit context argument in the predicate containing the call. This instantiation occurs at the clause head, not at the clause body.

@@ -31,9 +33,7 @@ self(Self)

Template and modes

-
-self(?object_identifier)
-
+
self(?object_identifier)

Errors

@@ -47,23 +47,22 @@ self(?object_identifier)

Examples

-
-test :-
+
test :-
     self(Self),
     write('executing a method in behalf of '),
-    writeq(Self), nl.
-
+ writeq(Self), nl.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: March 4, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/sender1.html b/Logtalk/manuals/refman/methods/sender1.html index 3916f5094..4f23d06f7 100644 --- a/Logtalk/manuals/refman/methods/sender1.html +++ b/Logtalk/manuals/refman/methods/sender1.html @@ -1,28 +1,30 @@ - + - sender/1 + + Logtalk built-in method: sender/1 -
-

sender/1

-
+ + +

sender/1

+

Description

-
-sender(Sender)
-
+
sender(Sender)

Returns the object that has sent the message under processing. Note that this predicate implies an instantiation between its argument and the corresponding implicit context argument in the predicate containing the call. This instantiation occurs at the clause head, not at the clause body.

@@ -31,9 +33,7 @@ sender(Sender)

Template and modes

-
-sender(?object_identifier)
-
+
sender(?object_identifier)

Errors

@@ -47,23 +47,22 @@ sender(?object_identifier)

Examples

-
-test :-
+
test :-
     sender(Sender),
     write('executing a method to answer a message sent by '),
-    writeq(Sender), nl.
-
+ writeq(Sender), nl.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: March 4, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/setof3.html b/Logtalk/manuals/refman/methods/setof3.html index cdf2ae39a..abb672c98 100644 --- a/Logtalk/manuals/refman/methods/setof3.html +++ b/Logtalk/manuals/refman/methods/setof3.html @@ -1,28 +1,30 @@ - + - setof/3 + + Logtalk built-in method: setof/3 -
-

setof/3

-
+ + +

setof/3

+

Description

-
-setof(Term, Goal, List)
-
+
setof(Term, Goal, List)

(see the Prolog ISO standard definition)

@@ -31,9 +33,7 @@ setof(Term, Goal, List)

Template and modes

-
-setof(@term, +callable, -list)
-
+
setof(@term, +callable, -list)

Errors

@@ -57,15 +57,16 @@ setof(@term, +callable, -list)
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/refman/methods/this1.html b/Logtalk/manuals/refman/methods/this1.html index 1e983250d..8b4cbd02e 100644 --- a/Logtalk/manuals/refman/methods/this1.html +++ b/Logtalk/manuals/refman/methods/this1.html @@ -1,21 +1,24 @@ - + - this/1 + + Logtalk built-in method: this/1 -
-

this/1

-
+ + +

this/1

Description

@@ -31,9 +34,7 @@

Template and modes

-
-this(?object_identifier)
-
+
this(?object_identifier)

Errors

@@ -47,23 +48,22 @@ this(?object_identifier)

Examples

-
-test :-
+
test :-
     this(This),
     write('executing a definition contained in '),
-    writeq(This), nl.
-
+ writeq(This), nl.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: March 4, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/styles.css b/Logtalk/manuals/styles.css index 13c402c3b..e5938803f 100644 --- a/Logtalk/manuals/styles.css +++ b/Logtalk/manuals/styles.css @@ -1,81 +1 @@ - -a:link { - color: blue; - text-decoration: underline -} - -a:visited { - color: navy; - text-decoration: underline -} - -a:hover { - color: blue; - text-decoration: underline -} - -a:active { - color: red; - text-decoration: underline -} - -code, pre { - color: navy; - background-color: white; - font-family: courier, monospace; -} - -p { - line-height: normal; - font-weight: normal; - font-style: normal; -} - -body { - color: black; - background-color: white; - font-family: sans-serif; - margin-left: 2em; - margin-right: 2em; -} - -h1, h2, h3, h4, h5, h6 { - color: maroon; - font-family: helvetica, arial, sans-serif; -} - -.center { text-align: center; } - -.indent { margin-left: 3em; margin-right: 3em; } - -.smallcaps { font-variant: small-caps; } - - -a.back { - color: maroon; - text-decoration: none; -} - -a.back:hover { - color: blue; - text-decoration: underline; -} - - -a.glossary { - color: teal; - font-style: italic; - text-decoration: none; -} - -a.glossary:hover { - color: blue; - font-style: italic; - text-decoration: underline; -} - -.glossary { - color: teal; - font-style: italic; - text-decoration: none; -} +body { color: #353535; font-size: 10pt; font-family: verdana, arial, sans-serif; background: #ddd; margin: 12pt } .title { color: maroon; font-size: 24pt; font-family: "Trebuchet MS", Arial, Verdana, Helvetica, sans-serif; text-align: center; padding: 0pt 0pt 6pt 0pt; } .topictitle { color: maroon; font-size: 12pt; font-family: "Trebuchet MS", Arial, Verdana, Helvetica, sans-serif; text-align: left; } .topic { padding: 0pt 0pt 0pt 24pt; } .spacer { } .navbottom { font-size: 9pt; text-align: right; border-width: 0pt 0pt 1pt 0pt; border-style: solid; padding: 12pt 0pt 3pt 0pt; } .navtop { text-align: right; font-size: 9pt; border-color: #000000; border-width: 1pt 0pt 0pt 0pt; border-style: solid; padding: 3pt 0pt 12pt 0pt; } .copyright { text-align: center; font-size: 9pt; padding: 9pt 0pt 9pt 0pt; } .footer { clear: left; text-align: right; font-size: 9pt; border-color: #000000; border-width: 1pt 0pt 0pt 0pt; border-style: solid; padding: 0pt 0pt 9pt 0pt; } a { text-decoration: none; color: navy; outline: none; } a:hover { text-decoration: underline; color: blue; } .bleft { float: left; position: relative; } .bright { float: right; position: relative; } code, pre { color: maroon; font-family: courier, monospace; } \ No newline at end of file diff --git a/Logtalk/manuals/tutorial/attributes.html b/Logtalk/manuals/tutorial/attributes.html index ba4eb0e5c..0b083ffca 100644 --- a/Logtalk/manuals/tutorial/attributes.html +++ b/Logtalk/manuals/tutorial/attributes.html @@ -1,20 +1,24 @@ - + - Dynamic object attributes + + Logtalk tutorial: dynamic object attributes -
-

Dynamic object attributes

+ + +

Dynamic object attributes

In this example, we will illustrate the use of: @@ -28,8 +32,7 @@ In this example, we will illustrate the use of: by defining a category that implements a set of predicates for handling dynamic object attributes.

-
-

Defining a category

+

Defining a category

We want to define a set of predicates to handle dynamic object attributes. We need public predicates to set, get, and delete attributes, and a private dynamic predicate to store the attributes values. Let us name these predicates set_attribute/2 and get_attribute/2, for getting and setting an attribute value, del_attribute/2 and del_attributes/2, for deleting attributes, and attribute_/2, for storing the attributes values. @@ -98,8 +101,7 @@ We have two new directives, Importing the category +

Importing the category

We reuse a category's predicates by importing them into an object: @@ -131,8 +133,7 @@ After compiling and loading this object and our category, we can now try queries no -


-

Summary

+

Summary

  • Categories are similar to objects: we just put our predicate directives and definitions bracketed by opening and ending category directives.
  • @@ -144,15 +145,16 @@ After compiling and loading this object and our category, we can now try queries
  • When do we use a category instead of an object? Whenever we have a set of closely related predicates that we want to reuse in several, unrelated, objects.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/tutorial/index.html b/Logtalk/manuals/tutorial/index.html index 94745d8ab..681e99470 100644 --- a/Logtalk/manuals/tutorial/index.html +++ b/Logtalk/manuals/tutorial/index.html @@ -1,60 +1,67 @@ - + + Logtalk Tutorial -
-

Tutorial

-
+ -

Table of Contents

+

Tutorial

-
-
List predicates
-
Defining a list object
-
Defining a list protocol
-
Summary
-
+

List predicates

-
-
Dynamic object attributes
-
Defining a category
-
Importing the category
-
Summary
-
+ -
-
A reflective class-based system
-
Defining the base classes
-
Summary
-
+

Dynamic object attributes

-
-
Profiling programs
-
Messages as events
-
Profilers as monitors
-
Summary
-
+ -
-

-User manual | Reference manual | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+

A reflective class-based system

+ + + +

Profiling programs

+ + + + + + + + - diff --git a/Logtalk/manuals/tutorial/lists.html b/Logtalk/manuals/tutorial/lists.html index 449f0b20f..6374d9acb 100644 --- a/Logtalk/manuals/tutorial/lists.html +++ b/Logtalk/manuals/tutorial/lists.html @@ -1,20 +1,24 @@ - + - List predicates + + Logtalk tutorial: list predicates -
-

List predicates

+ + +

List predicates

In this example, we will illustrate the use of: @@ -27,8 +31,7 @@ In this example, we will illustrate the use of: by using common list utility predicates.

-
-

Defining a list object

+

Defining a list object

We will start by defining an object, list, containing predicate definitions for some common list predicates like append/3, length/2 and member/2: @@ -115,8 +118,7 @@ The infix operator Defining a list protocol +

Defining a list protocol

As we saw in the above example, a Logtalk object may contain predicate directives and predicate definitions. The set of predicate directives defines what we call the object's protocol or interface. An interface may have several implementations. For instance, we may want to define a new object that implements the list predicates using difference lists. However, we do not want to repeat the predicate directives in the new object. Therefore, what we need is to split the object's protocol from the object's predicate definitions by defining a new Logtalk entity called a protocol. Logtalk protocols are compilations units, at the same level as objects and categories. That said, let us define a listp protocol: @@ -185,8 +187,7 @@ The protocol declared in listp may now be alternatively implemented :- end_object. -


-

Summary

+

Summary

  • It is easy to define a simple object: just put your Prolog code inside starting and ending object directives and add the necessary scope directives. The object will be self-defining and ready to use.
  • @@ -195,15 +196,16 @@ The protocol declared in listp may now be alternatively implemented
  • Define a protocol when you may want to provide or enable several alternative definitions to a given set of predicates. This way we avoid needless repetition of predicate directives.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/tutorial/profiling.html b/Logtalk/manuals/tutorial/profiling.html index dbf4a610e..660de45bd 100644 --- a/Logtalk/manuals/tutorial/profiling.html +++ b/Logtalk/manuals/tutorial/profiling.html @@ -1,20 +1,24 @@ - + - Profiling programs + + Logtalk tutorial: profiling programs -
-

Profiling programs

+ + +

Profiling programs

In this example, we will illustrate the use of: @@ -27,8 +31,7 @@ In this example, we will illustrate the use of: by defining a simple profiler that prints the starting and ending time for processing a message sent to an object.

-
-

Messages as events

+

Messages as events

In a pure object-oriented system, all computations start by sending messages to objects. We can thus define an event as the sending of a message to an object. An event can then be specified by the tuple (Object, Message, Sender). This definition can be refined by interpreting the sending of a message and the return of the control to the object that has sent the message as two distinct events. We call these events respectively before and after. Therefore, we end up by representing an event by the tuple (Event, Object, Message, Sender). For instance, if we send the message: @@ -53,8 +56,7 @@ Note that the second event is only generated if the message succeeds. If the mes Events are automatically generated by the message sending mechanisms for each public message sent using the ::/2 operator.

-
-

Profilers as monitors

+

Profilers as monitors

A monitor is an object that reacts whenever a spied event occurs. The monitor actions are defined by two event handlers: before/3 for before events and after/3 for after events. These predicates are automatically called by the message sending mechanisms when an event registered for the monitor occurs. @@ -133,8 +135,7 @@ built-in predicate: This call will abolish all events defined over the object foo assigned to the stop_watch monitor.

-
-

Summary

+

Summary

  • An event is defined as the sending of a (public) message to an object.
  • @@ -152,15 +153,16 @@ This call will abolish all events defined over the object foo assig
  • Three built-in predicates, define_events/5, current_event/5, and abolish_events/5, enables us define, query, and abolish both events and monitors.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/tutorial/reflection.html b/Logtalk/manuals/tutorial/reflection.html index 78dc89df7..ee3f517e5 100644 --- a/Logtalk/manuals/tutorial/reflection.html +++ b/Logtalk/manuals/tutorial/reflection.html @@ -1,20 +1,24 @@ - + - A reflective class-based system + + Logtalk tutorial: a reflective class-based system -
-

A reflective class-based system

+ + +

A reflective class-based system

When compiling an object, Logtalk distinguishes prototypes from instance or classes by examining the object relations. If an object instantiates and/or specializes another object, then it is compiled as an instance or class, otherwise it is compiled as a prototype. A consequence of this is that, in order to work with instance or classes, we always have to define root objects for the instantiation and specialization hierarchies (however, we are not restricted to a single hierarchy). The best solution is often to define a reflective class-based system [Maes 87], where every class is also an object and, as such, an instance of some class. @@ -23,8 +27,7 @@ When compiling an object, Logtalk distinguishes prototypes from instance or clas In this example, we are going to define the basis for a reflective class-based system, based on an extension of the ideas presented in [Cointe 87]. This extension provides, along with root objects for the instantiation and specialization hierarchies, explicit support for abstract classes [Moura 94].

-
-

Defining the base classes

+

Defining the base classes

We will start by defining three classes: object, abstract_class, and class. The class object will contain all predicates common to all objects. It will be the root of the inheritance graph: @@ -65,8 +68,7 @@ The class class specializes abstract_class by adding p Note that all three objects are instances of class class. The instantiation and specialization relationships are choosen so that each object may use the predicates defined in itself and in the other two objects, with no danger of method lookup endless loops.

-
-

Summary

+

Summary

  • An object that does not instantiate or specialize other objects is always compiled as a prototype.
  • @@ -78,15 +80,16 @@ Note that all three objects are instances of class class. The insta
  • The distinction between abstract classes and instantiable classes is a operational one, depending on the class inherited methods. A class is instantiable if inherits methods for creating instances. Conversely, a class is abstract if does not inherit any instance creation method.
-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/userman/categories.html b/Logtalk/manuals/userman/categories.html index 5ed1ad5a6..b9e9751b8 100644 --- a/Logtalk/manuals/userman/categories.html +++ b/Logtalk/manuals/userman/categories.html @@ -1,27 +1,30 @@ - + - Categories + + Logtalk user manual: categories -
-

Categories

+ + +

Categories

Categories provide a way to encapsulate a set of related predicate definitions that do not represent an object and that only make sense when composed with other predicates. Categories may also be used to break a complex object in functional units. A category can be imported by several objects (without code duplication), including objects participating in prototype or class-based hierarchies. This concept of categories shares some ideas with Smalltalk-80 functional categories [Goldberg 83], Flavors mix-ins [Moon 86] (without implying multi-inheritance) and Objective-C categories [Cox 86]. There are no pre-defined categories in Logtalk.

-
-

Defining a new category

+

Defining a new category

We can define a new category in the same way we write Prolog code: by using a text editor. Each category (object or protocol) we define should be contained in its own text file. It is recommended that this text file be named after the category. By default, all Logtalk source files use the extension .lgt but this is optional and can be set in the configuration files. Compiled source files (by the Logtalk preprocessor) have, by default, a .pl extension. Again, this can be set to match the needs of a particular Prolog compiler in the corresponding configuration file. For instance, we may define a category named documenting and save it in a documenting.lgt source file that will be compiled to a documenting.pl Prolog file. @@ -53,8 +56,7 @@ Note that a category can't import other categories or inherit code from an objec Categories cannot contain clauses for dynamic predicates (however, they can declare dynamic predicates). This restriction applies because a category can be imported by several objects and because we cannot use the database handling built-in methods with categories (messages can only be sent to objects).

-
-

Finding defined categories

+

Finding defined categories

We can find, by backtracking, all defined categories by using the current_category/1 Logtalk built-in predicate with an uninstantiated variable: @@ -66,8 +68,7 @@ We can find, by backtracking, all defined categories by using the Creating a new category in runtime +

Creating a new category in runtime

A category can be dynamically created at runtime by using the create_category/4 built-in predicate: @@ -107,8 +108,7 @@ is equivalent to compiling and loading the category: If we need to create a lot of (dynamic) categories at runtime, then is best to to define a metaclass or a prototype with a predicate that will call this built-in predicate in order to provide more sophisticated behaviour.

-
-

Abolishing an existing category

+

Abolishing an existing category

Dynamic categories can be abolished using the abolish_category/1 built-in predicate: @@ -120,14 +120,13 @@ Dynamic categories can be abolished using the Category directives +

Category directives

Category directives are used to set initialization goals and category properties and to document a category dependencies on other Logtalk entities.

-

Category initialization

+

Category initialization

We can define a goal to be executed as soon as a category is (compiled and) loaded to memory with the initialization/1 directive: @@ -139,7 +138,7 @@ We can define a goal to be executed as soon as a category is (compiled and) load The argument can be any valid Prolog or Logtalk goal, including a message sending call.

-

Dynamic categories

+

Dynamic categories

As usually happens with Prolog code, a category can be either static or dynamic. A category created during the execution of a program is always dynamic. A category defined in a file can be either dynamic or static. Dynamic categories are declared by using the dynamic/0 directive in the category source code: @@ -151,7 +150,7 @@ As usually happens with Prolog code, a category can be either static or dynamic. Let us just remember that the loss of performance of the dynamic code is usually of considerable importance to the static code. We should only use dynamic categories when these need to be abolished during program execution.

-

Category dependencies

+

Category dependencies

Besides the relations declared in the category opening directive, the predicate definitions contained in the category may imply other dependencies. This can be documented by using the calls/1 and the uses/1 directives. @@ -172,7 +171,7 @@ If a predicate definition sends a message to a specific object, this dependence These two directives can be used by the Logtalk runtime to ensure that all needed entities are loaded when running an application.

-

Category documentation

+

Category documentation

A category can be documented with arbitrary user-defined information by using the info/1 directive: @@ -184,8 +183,7 @@ A category can be documented with arbitrary user-defined information by using th See the Documenting Logtalk programs session for details.

-
-

Category relationships

+

Category relationships

Logtalk provides two sets of built-in predicates that enable us to query the system about the possible relationships that a category can have with other entities. @@ -222,8 +220,7 @@ or, if we want to know the importation scope: Note that several objects can import a category.

-
-

Category properties

+

Category properties

We can find the properties of defined categories by calling the built-in predicate category_property/2: @@ -235,8 +232,7 @@ We can find the properties of defined categories by calling the built-in predica A category may have the property static, dynamic, or built_in. Dynamic categories can be abolished in runtime by calling the abolish_category/1 built-in predicate.

-
-

Importing categories

+

Importing categories

Any number of objects can import a category. The syntax is very simple: @@ -275,15 +271,16 @@ Omitting the scope keyword is equivalent to writing: :- end_object. -


-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/userman/configuration.html b/Logtalk/manuals/userman/configuration.html index 1452819bd..701ec4f70 100644 --- a/Logtalk/manuals/userman/configuration.html +++ b/Logtalk/manuals/userman/configuration.html @@ -1,20 +1,24 @@ - + - Logtalk configuration + + Logtalk user manual: logtalk configuration -
-

Logtalk configuration

+ + +

Logtalk configuration

The Logtalk system is entirely written in Prolog, without resorting to other programming languages. In spite of that, the fact that the ISO standard [Moura 99]. If most syntax problems can The adopted solution consists on developing a universal Logtalk version, linked to a given compiler through the definition of a small set of predicates and operators, assembled in a configuration file. These predicates can be divided in two groups. The first group contains Logtalk specific predicates. The second group tries to implement predicates that, although they are defined in the approved ISO Prolog Standard, are not available in the specific compiler we want to use. This manual session explains how to build a configuration file for a Prolog compiler.

-
-

Hardware & software requirements

+

Hardware & software requirements

-

Computer and operating system

+

Computer and operating system

Logtalk is compatible with almost any machine/operating system with a modern Prolog compiler available. Currently, my main development environment is an upgraded Apple PowerMacintosh 7600 running Mac OS 9 and LinuxPPC; most used compilers are the Mac port of GNU Prolog and, under Linux, YAP and SWI Prolog. Being written in Prolog and distributed in source form, the only issue regarding operating system compatibility are the end-of-line codes in the source text files! Most example source file names do not fit in the 8+3 MS-DOS file length limitation, so this may prevent those examples from running under this operating system (or in any other system with similar limitations).

-

Prolog compiler

+

Prolog compiler

In writing Logtalk I have tried to follow the recently approved Prolog ISO standard whenever possible. Capabilities needed by Logtalk that are not defined in the ISO standard are: @@ -51,8 +54,7 @@ For optimal performance, Logtalk requires that the Prolog compiler supports -


-

Configuration files

+

Configuration files

Configuration files provide the glue code between the Logtalk preprocessor/runtime and a Prolog compiler. Each configuration file contains two sets of predicates: ISO Prolog standard predicates and directives not built-in in the target Prolog compiler and Logtalk-specific predicates. @@ -67,15 +69,16 @@ Start by making a copy of the file configs/template.config. Careful If you are unsure that your Prolog compiler provides all the ISO predicates needed by Logtalk, try to run the system by setting the unknown predicate error handler to report as an error any call to a missing predicate. Better yet, switch to a modern, ISO compliant, Prolog compiler.

-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/userman/documenting.html b/Logtalk/manuals/userman/documenting.html index c2bc57ec1..d72fbd1a3 100644 --- a/Logtalk/manuals/userman/documenting.html +++ b/Logtalk/manuals/userman/documenting.html @@ -1,20 +1,24 @@ - + - Documenting Logtalk programs + + Logtalk user manual: documenting programs -
-

Documenting Logtalk programs

+ + +

Documenting Logtalk programs

Logtalk automatically generates a documentation file for each compiled entity (object, protocol, or category) in XML format. Contents of the XML file include the entity name, type, and compilation mode (static or dynamic), the entity relations with other entities, and a description of any declared predicates (name, compilation mode, scope, ...). @@ -23,14 +27,13 @@ Logtalk automatically generates a documentation file for each compiled entity (o The XML documentation files can be enriched with arbitrary user-defined information, either about an entity or about its predicates, by using the two directives described below.

-
-

Documenting directives

+

Documenting directives

Logtalk supports two documentation directives for providing arbitrary user-defined information about an entity or a predicate. These two directives complement other Logtalk directives that also provide important documentation information like uses/1, calls/1, or mode/2.

-

Entity directives

+

Entity directives

Arbitrary user-defined entity information can be represented using the info/1 directive: @@ -73,7 +76,7 @@ For example: Use only the keywords that make sense for your application and remember that you are free to invent your own keywords.

-

Predicate directives

+

Predicate directives

Arbitrary user-defined predicate information can be represented using the @@ -113,8 +116,7 @@ For example: Use only the keywords that make sense for your application and remember that you are free to invent your own keywords.

-
-

Processing and viewing documenting files

+

Processing and viewing documenting files

The XML documenting files are (by default) automatically generated when you compile a Logtalk entity. For example, assuming the default filename extensions, compiling a sort1.lgt file generates a sort1.pl Prolog file and a sort1.xml XML file. The filename extension for each kind of file can be changed in the config files via the lgt_file_extension/2 predicate. @@ -132,15 +134,16 @@ By default, all file references use relative paths, assuming that the .xml To view the XML documenting files you can open them in a web browser that supports the XML, XSL, CSS 1, and HTML 4 standards or use a XSLT tool to compile the .xml files to .html files. You can also write new XSL files to convert the XML code to alternative formats like LaTeX or any other desired format.

-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: January 29, 2003 -

-
+ + + + - diff --git a/Logtalk/manuals/userman/errors.html b/Logtalk/manuals/userman/errors.html index dca3a153a..2f9422199 100644 --- a/Logtalk/manuals/userman/errors.html +++ b/Logtalk/manuals/userman/errors.html @@ -1,20 +1,24 @@ - + - Error handling + + Logtalk user manual: error handling -
-

Error handling

+ + +

Error handling

All error/exception handling is done in Logtalk by using the ISO defined catch/3 and throw/1 predicates [ISO 95]. Some Prolog compilers do not implement these predicates or, if they do, the implementation is not compatible with the standard. Furthermore, the nature of these predicates does not allow their definition by the user. For these reasons, we should check our Prolog compiler before trying to add error handling code to your Logtalk applications. @@ -44,8 +48,7 @@ For example: error(permission_error(modify, private_predicate, bar(_)), foo::abolish(bar/1), user) -


-

Compiler warnings and errors

+

Compiler warnings and errors

The Logtalk preprocessor/compiler uses the read_term/3 ISO Prolog defined built-in predicate to read and process a Logtalk source file. One consequence of this is that invalid Prolog terms or syntax errors may abort the compilation process with limited information given to the user (due to the inherent limitations of the read_term/3 predicate). @@ -54,88 +57,88 @@ The Logtalk preprocessor/compiler uses the read_term/3 ISO Prolog d If all the (Prolog) terms in a source file are valid, then there is a set of errors or potential errors, described below, that the preprocessor will try to detect and report, depending on the used compiler options (see the Installing and running Logtalk section of this manual for details).

-

Unknown entities

+

Unknown entities

The Logtalk preprocessor/compiler will warn us of any referenced entity that is not currently loaded. The warning may reveal a misspell entity name or just an entity that it will be loaded next.

-

Singleton variables

+

Singleton variables

Singleton variables in a clause are often misspell variables and, as such, one of the most common errors when programming in Prolog. If your Prolog compiler complies with the Prolog ISO standard or at least supports the ISO predicate read_term/3 called with the option singletons(S), then the Logtalk preprocessor/compiler will warn us of any singleton it finds while compiling a Logtalk entity.

-

Redefinition of Prolog built-in predicates

+

Redefinition of Prolog built-in predicates

The Logtalk preprocessor/compiler will warn us of any redefinition of a Prolog built-in predicate inside an object or category. Sometimes the redefinition is intended. In other cases, the user may not be aware that the subjacent Prolog compiler may already provide the predicate as a built-in or we may want to ensure code portability among several Prolog compilers with different sets of built-in predicates.

-

Redefinition of Logtalk built-in predicates

+

Redefinition of Logtalk built-in predicates

Similar to the redefinition of Prolog built-in predicates, the Logtalk compiler will warn us if we try to redefine a Logtalk built-in. The redefinition will probably be an error in almost all (if not all) cases.

-

Redefinition of Logtalk built-in methods

+

Redefinition of Logtalk built-in methods

An error will be thrown if we attempt to redefine a Logtalk built-in method inside an entity. The default behaviour is to report the error and abort the compilation of the offending entity.

-

Misspell calls of local predicates

+

Misspell calls of local predicates

A warning will be reported if Logtalk finds (in the body of a predicate definition) a call to a local predicate that is not defined, built-in (either in Prolog or in Logtalk) or declared dynamic. In most cases these calls are simple misspell errors.

-

Portability warnings

+

Portability warnings

A warning will be reported if a predicate clause contains a call to a non-ISO defined built-in predicate.

-

Other warnings and errors

+

Other warnings and errors

The Logtalk preprocessor/compiler will throw an error if it finds a predicate clause or a directive that cannot be parsed. The default behaviour is to report the error and abort the compilation of the offending entity.

-
-

Runtime errors

+

Runtime errors

This session briefly describes runtime errors that result from misuse of Logtalk built-in predicates, built-in methods or from message sending. For a complete and detailed description of runtime errors please consult the Reference Manual.

-

Logtalk built-in predicates

+

Logtalk built-in predicates

All Logtalk built-in predicates checks the type and mode of the calling arguments, throwing an exception in case of misuse.

-

Logtalk built-in methods

+

Logtalk built-in methods

Every Logtalk built-in method checks the type and mode of the calling arguments, throwing an exception in case of misuse.

-

Message sending

+

Message sending

The message sending mechanisms always check if the receiver of a message is a defined object and if the message corresponds to a declared predicate within the scope of the sender.

-
-

-Previous | Next | Table of Contents | Bibliography | Glossary -

-

-Last updated on: August 6, 2002 -

-
+ + + + - diff --git a/Logtalk/manuals/userman/events.html b/Logtalk/manuals/userman/events.html index a17d781e6..802dc29b4 100644 --- a/Logtalk/manuals/userman/events.html +++ b/Logtalk/manuals/userman/events.html @@ -1,20 +1,24 @@ - + - Event-driven programming + + Logtalk user manual: event-driven programming -
-

Event-driven programming

+ + +

Event-driven programming

The addition of event-driven programming capacities to the Logtalk system is based on a simple but powerful idea [Moura 94]: @@ -39,14 +43,13 @@ With the integration between object-oriented and event-driven programming, we in

  • Provide a framework for building reflexive systems in Logtalk based on the dynamic behaviour of objects in complement to the reflective information of the object's contents and relations.
  • -
    -

    Definitions

    +

    Definitions

    The words event and monitor have multiple meanings in computer science, so, to avoid misunderstandings, it is advisable that we start by defining them in the Logtalk context.

    -

    Event

    +

    Event

    In an object-oriented system, all computations start through message sending. It thus becomes quite natural to declare that the only event that can occur in this kind of system is precisely the sending of a message. An event can thus be represented by the ordered tuple (Object, Message, Sender). @@ -82,7 +85,7 @@ The notion of event allows the user not only to have the possibility of observin

    -

    Monitor

    +

    Monitor

    Complementary to the notion of event is the notion of monitor. A monitor is an object that is automatically notified by the message sending mechanisms whenever certain events occur. A monitor should naturally define the actions to be carried out whenever a monitored event occurs. @@ -123,29 +126,25 @@ In other words, if the message contains uninstantiated variables, these are not

    -
    -

    Event generation

    +

    Event generation

    For each message that is sent (using the ::/2 message sending mechanism) the runtime system automatically generates two events. The first - before event - is generated when the message is sent. The second - after event - is generated after the message has successfully been executed.

    -
    -

    Communicating events to monitors

    +

    Communicating events to monitors

    Whenever a spied event occurs, the message sending mechanisms call the corresponding event handlers directly for all registered monitors. These calls are made bypassing the message sending primitives in order to avoid potential endless loops. The event handlers consist in user definitions for pre-declared public predicates (one for each event kind; see below for more details).

    -
    -

    Performance concerns

    +

    Performance concerns

    The existence of monitored messages should not affect the processing of the remaining messages. On the other hand, for each message that has been sent, the system must verify if its respective event is monitored. This verification clearly must be ideally performed in constant time and independently from the number of monitored events. The events representation takes advantage of the first argument indexing performed by most Prolog compilers, which ensure - in the general case - an access in constant time.

    -
    -

    Monitor semantics

    +

    Monitor semantics

    The established semantics for monitors actions consists on considering its success as a necessary condition so that a message can succeed: @@ -160,21 +159,19 @@ The established semantics for monitors actions consists on considering its succe Note that this is the most general choice. If we wish a transparent presence of monitors in a message processing, we just have to define the monitor actions in such a way that they never fail (which is very simple to accomplish).

    -
    -

    Activation order of monitors

    +

    Activation order of monitors

    Ideally, whenever there are several monitors defined for the same event, the calling order should not interfere with the result. However, this is not always possible. In the case of an event of type before, the failure of a monitor prevents a message from being sent and prevents the execution of the remaining monitors. In case of an event of type after, a monitor failure will force backtracking over message execution. Different orders of monitor activation can therefore lead to different results if the monitor actions imply object modifications unrecoverable in case of backtracking. Therefore, the order for monitor activation must be always taken as arbitrary. In effect, to suppose or to try to impose a specific sequence implies a global knowledge of an application dynamics, which is not always possible. Furthermore, that knowledge can reveal itself as incorrect if there is any changing in the execution conditions. Note that, given the independence between monitors, it does not make sense that a failure forces backtracking over the actions previously executed.

    -
    -

    Event handling

    +

    Event handling

    Logtalk provides three built-in predicates for event handling. These predicates enable you to find what events are defined, to define new events and to abolish events when they are no longer needed. If you plan to use events extensively in your application, then you should probably define a set of objects that use the built-in predicates described below to implement more sophisticated and high-level behaviour.

    -

    Finding defined events

    +

    Finding defined events

    The events that are currently defined can be retrieved using the Logtalk built-in predicate current_event/5: @@ -186,7 +183,7 @@ The events that are currently defined can be retrieved using the Logtalk built-i Note that this predicate will return a set of matching events if some of the returned arguments are free variables or contain free variables.

    -

    Defining new events

    +

    Defining new events

    New events can be defined using the Logtalk built-in predicate define_events/5: @@ -198,7 +195,7 @@ New events can be defined using the Logtalk built-in predicate Abolishing defined events +

    Abolishing defined events

    Events that are no longer needed may be abolished using the abolish_events/5 built-in predicate: @@ -210,7 +207,7 @@ Events that are no longer needed may be abolished using the Defining event handlers +

    Defining event handlers

    There are two pre-declared public predicates, before/3 and after/3, that are automatically called to handle before and after events. Any object that plays the role of monitor should define one or both of these event handler methods: @@ -281,15 +278,16 @@ To stop tracing, we can use the abolish_events/5 built-in predicate yes -


    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 6, 2002 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/features.html b/Logtalk/manuals/userman/features.html index c8d936a22..c1b2060b6 100644 --- a/Logtalk/manuals/userman/features.html +++ b/Logtalk/manuals/userman/features.html @@ -1,20 +1,24 @@ - + - Logtalk features + + Logtalk user manual: logtalk features -
    -

    Logtalk features

    + + +

    Logtalk features

    Some years ago, I decided that the best way to learn object-oriented programming was to build my own object-oriented language. Prolog always being my favorite language, I chose to extend it with object-oriented capabilities. Eventually this work has lead to the Logtalk system. The first public release of Logtalk 1.x occurred in February of 1995. Based on feedback by users and on the author subsequent work, the second major version went public in July of 1998. @@ -23,7 +27,7 @@ Some years ago, I decided that the best way to learn object-oriented programming Although this version of Logtalk shares many ideas and goals with previous 1.x versions, programs written for one version are not compatible with the other (however, conversion from previous versions can easily be accomplished in most cases). This is a consequence of the desire to have a more friendly system, with a very smooth learning curve, bringing Logtalk programming closer to traditional Prolog programming. There are, of course, also other important changes, that result in a more powerful and funnier system. Logtalk 2.x development provides the following features:

    -

    Integration of logic and object-oriented programming

    +

    Integration of logic and object-oriented programming

    @@ -34,7 +38,7 @@ In a more pragmatically view, Logtalk objects provide Prolog with the possibilit

    -

    Integration of event-driven and object-oriented programming

    +

    Integration of event-driven and object-oriented programming

    @@ -42,7 +46,7 @@ Event-driven programming enables the building of reactive systems, where computi

    -

    Support for both prototype and class-based systems

    +

    Support for both prototype and class-based systems

    @@ -50,7 +54,7 @@ Almost any (if not all) object-oriented languages available today are either cla

    -

    Support for multiple object hierarchies

    +

    Support for multiple object hierarchies

    @@ -58,7 +62,7 @@ Languages like Smalltalk-80 [Goldberg

    -

    Separation between interface and implementation

    +

    Separation between interface and implementation

    @@ -66,7 +70,7 @@ This is an expected (should we say standard ?) feature of almost any modern prog

    -

    Private, protected and public inheritance

    +

    Private, protected and public inheritance

    @@ -74,7 +78,7 @@ Logtalk supports private, protected and public inheritance in a similar way to C

    -

    Private, protected and public object predicates

    +

    Private, protected and public object predicates

    @@ -82,7 +86,7 @@ Logtalk supports data hiding by implementing private, protected and public objec

    -

    Parametric objects

    +

    Parametric objects

    @@ -90,7 +94,7 @@ Object names can be compound terms (instead of atoms), providing a way to parame

    -

    Smooth learning curve

    +

    Smooth learning curve

    @@ -98,7 +102,7 @@ Logtalk has a smooth learning curve, by adopting standard Prolog syntax (using a

    -

    Compatibility with most Prologs and the ISO standard

    +

    Compatibility with most Prologs and the ISO standard

    @@ -106,15 +110,16 @@ The Logtalk system has been designed to be compatible with most Prolog compilers

    -
    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 6, 2002 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/index.html b/Logtalk/manuals/userman/index.html index b72c06d92..5eeb1e8d6 100644 --- a/Logtalk/manuals/userman/index.html +++ b/Logtalk/manuals/userman/index.html @@ -1,160 +1,161 @@ - + + Logtalk User Manual -
    -

    User Manual

    -
    + -

    Table of Contents

    +

    User Manual

    -

    Logtalk features

    +

    Logtalk features

    -
    -
    Integration of logic and object-oriented programming
    -
    Integration of event-driven and object-oriented 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
    -
    Smooth learning curve
    -
    Compatibility with most Prologs and the ISO standard
    -
    + -

    Message sending

    +

    Message sending

    -
    -
    Operators used in message sending
    -
    Sending a message to an object
    -
    Broadcasting
    -
    Sending a message to self
    -
    Calling an overridden predicate definition
    -
    Message sending and event generation
    -
    + -

    Objects

    +

    Objects

    -
    -
    Objects, prototypes, classes and instances
    -
    Defining a new object
    -
    Parametric objects
    -
    Finding defined objects
    -
    Creating a new object in runtime
    -
    Abolishing an existing object
    -
    Object directives
    +
    +
  • Object relationships
  • +
  • Object properties
  • +
  • The pseudo-object user
  • + -

    Protocols

    +

    Protocols

    -
    -
    Defining a new protocol
    -
    Finding defined protocols
    -
    Creating a new protocol in runtime
    -
    Abolishing an existing protocol
    -
    Protocol directives
    +
    +
  • Protocol relationships
  • +
  • Protocol properties
  • +
  • Implementing protocols
  • + -

    Categories

    +

    Categories

    -
    -
    Defining a new category
    -
    Finding defined categories
    -
    Creating a new category in runtime
    -
    Abolishing an existing category
    -
    Category directives
    +
    +
  • Category relationships
  • +
  • Category properties
  • +
  • Importing categories
  • + -

    Predicates

    +

    Predicates

    -
    -
    Declaring predicate
    +
    +
  • Predicate properties
  • +
  • Finding declared predicates
  • + -

    Inheritance

    +

    Inheritance

    -
    -
    Protocol inheritance
    +
    +
  • Public, protected and private inheritance
  • +
  • Composition versus multiple inheritance
  • + -

    Event-driven programming

    +

    Event-driven programming

    -
    -
    Definitions
    +
    + -

    Error handling

    +

    Error handling

    -
    -
    Compiler warnings and errors
    +
    + -

    Documenting Logtalk programs

    +

    Documenting Logtalk programs

    -
    -
    Documenting directives
    +
    +
  • Processing and viewing documenting files
  • + -

    Configuring Logtalk

    +

    Configuring Logtalk

    -
    -
    Hardware & software requirements
    +
    +
  • Configuration file contents
  • + -

    Installing and running Logtalk

    +

    Installing and running Logtalk

    -
    -
    Installing Logtalk
    +
    +
  • Using Logtalk for batch processing
  • + -

    Programming in Logtalk

    +

    Programming in Logtalk

    -
    -
    Logtalk scope
    -
    Writing programs
    +
    + -
    -

    -Reference manual | Tutorial | Bibliography | Glossary -

    -

    -Last updated on: January 29, 2003 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/inheritance.html b/Logtalk/manuals/userman/inheritance.html index 799dd168d..df3c8690d 100644 --- a/Logtalk/manuals/userman/inheritance.html +++ b/Logtalk/manuals/userman/inheritance.html @@ -1,64 +1,66 @@ - + - Inheritance + + Logtalk user manual: inheritance -
    -

    Inheritance

    + + +

    Inheritance

    The inheritance mechanisms existent in object-oriented programming languages allow us the specialization of previously defined objects, avoiding the unnecessary repetition of code. In the context of logic programming, we can interpret inheritance as a form of theory extension: an object will virtually contain, besides its own predicates, all the predicates inherited from other objects.

    -
    -

    Protocol inheritance

    +

    Protocol inheritance

    Protocol inheritance refers to the inheritance of predicate declarations (scope directives). These can be contained in objects, in protocols or in categories. Logtalk supports multi-inheritance of protocols: an object or a category may implement several protocols and a protocol may extend several protocols.

    -

    Search order for prototype hierarchies

    +

    Search order for prototype hierarchies

    The search order for predicate declarations is first the object, second the implemented protocols (and the protocols that these may extend), third the imported categories (and the protocols that they may implement), and last the objects that the object extends. This search is done in a depth-first way. If the object inherits two different declarations for the same predicate, only the first one will be considered.

    -

    Search order for class hierarchies

    +

    Search order for class hierarchies

    The search order for predicate declarations starts in the object classes. Following the classes declaration order, the search starts in the classes implemented protocols (and the protocols that these may extend), third the classes imported categories (and the protocols that they may implement), and last the superclasses of the object classes. This search is done in a depth-first way. If the object inherits two different declarations for the same predicate, only the first one will be considered.

    -
    -

    Implementation inheritance

    +

    Implementation inheritance

    Implementation inheritance refers to the inheritance of predicate definitions. These can be contained in objects or in categories. Logtalk supports multi-inheritance of implementation: an object may import several categories or extend, specialize or instantiate several objects.

    -

    Search order for prototype hierarchies

    +

    Search order for prototype hierarchies

    The search order for predicate definitions is similar to the search for predicate declarations except that implemented protocols are ignored (they can only contain predicate directives).

    -

    Search order for class hierarchies

    +

    Search order for class hierarchies

    The search order for predicate definitions is similar to the search for predicate declarations except that implemented protocols are ignored (they can only contain predicate directives).

    -

    Inheritance versus predicate redefinition

    +

    Inheritance versus predicate redefinition

    When we define a predicate that is already inherited from other object, the inherited definitions are hidden by the new definitions. This is called overriding inheritance: a local definition overrides any inherited ones. For example, assume that we have the following two objects: @@ -104,7 +106,7 @@ After compiling and loading these objects, we can check the overriding behavior However, we can explicitly program other behaviors. Let us see a few examples.

    -

    Specialization inheritance

    +

    Specialization inheritance

    Specialization of inherited definitions: the new definition uses the inherited definitions, adding to this new code. This is done by calling the ^^/1 operator in the new definition. @@ -138,7 +140,7 @@ Specialization of inherited definitions: the new definition uses the inherited d yes -

    Union inheritance

    +

    Union inheritance

    Union of the new with the inherited definitions: all the definitions are taken into account, the calling order being defined by the inheritance mechanisms. This can be accomplished by writing a clause that just calls, using the ^^/1 operator, the inherited definitions. The relative position of this clause among the other definition clauses sets the calling order for the local and inherited definitions. @@ -173,7 +175,7 @@ Union of the new with the inherited definitions: all the definitions are taken i no -

    Selective inheritance

    +

    Selective inheritance

    Hiding some of the inherited definitions, or differential inheritance: this form of inheritance is normally used in the representation of exceptions to generic definitions. Here we will need to use the ^^/1 operator to test and possibly reject some of the inherited definitions. @@ -208,8 +210,7 @@ Hiding some of the inherited definitions, or differential inheritance: this form no -


    -

    Public, protected and private inheritance

    +

    Public, protected and private inheritance

    To make all public predicates declared via implemented protocols, importeds categories, or inherited objects protected or to make all public and protected predicates private we prefix the entity's name with the corresponding keyword. For instance: @@ -251,8 +252,7 @@ This is the same as: This way we ensure backward compatibility with older Logtalk versions and a simplified syntax when protected or private inheritance are not used.

    -
    -

    Composition versus multiple inheritance

    +

    Composition versus multiple inheritance

    It is not possible to discuss inheritance mechanisms without referring to the long and probably endless debate on single versus multiple inheritance. The single inheritance mechanism can be implemented in an very efficient way, but it imposes several limitations on reusing, even if the multiple characteristics we intend to inherit are orthogonal. On the other hand, the multiple inheritance mechanisms are attractive in their apparent capability of modeling complex situations. However, they include a potential for conflict between inherited definitions whose variety does not allow a single and satisfactory solution for all the cases. @@ -264,15 +264,16 @@ Until now, no solution that we might consider satisfactory for all the problems Nevertheless, Logtalk supports multi-inheritance by enabling an object to extend, instantiate, or specialize more than one object. Beware however that the current Logtalk release does not provide any mechanism for selecting a specific inheritance path or for dealing with inheritance conflicts. The multi-inheritance support implementation does not compromise performance when we use single-inheritance.

    -
    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 6, 2002 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/installing.html b/Logtalk/manuals/userman/installing.html index f75bcef2f..e45884a01 100644 --- a/Logtalk/manuals/userman/installing.html +++ b/Logtalk/manuals/userman/installing.html @@ -1,23 +1,26 @@ - + - Installing and running Logtalk + + Logtalk user manual: installing and running Logtalk -
    -

    Installing and running Logtalk

    + -
    -

    Installing Logtalk

    +

    Installing and running Logtalk

    + +

    Installing Logtalk

    The Logtalk system can be installed in any directory that is accessible to the user. The installation process consists merely in decompressing an archive file that will lead to a new directory with the structure/contents described below. The decompression process naturally depends on the operative system that you are using. @@ -57,7 +60,7 @@ The OS/2 and Windows 95/98/NT/ME/2000 version is included in the file lgt2 Almost all files in the Logtalk distribution are text files. The only difference between the source files, other than the compressing formats, is the end-of-line codes: Macintosh uses a carriage return, Unix uses a line feed, OS/2, Windows 95/NT uses both a carriage return and a line feed. This should make it easier to install Logtalk under other operating systems.

    -

    Directories and files organization

    +

    Directories and files organization

    In the Logtalk installation directory, you will find the following files and directories: @@ -106,7 +109,7 @@ In the Logtalk installation directory, you will find the following files and dir

    ... - other XML related files
    -

    Configuration files

    +

    Configuration files

    Logtalk includes several configuration files for most academic and commercial Prolog compilers. If a configuration file is not available for the compiler that you intend to use, then you need to build a new one, starting from the included template.config file. @@ -115,31 +118,31 @@ Logtalk includes several configuration files for most academic and commercial Pr Since most Prolog compilers are moving closer to the ISO Prolog standard [ISO 95], it is advisable that you try to use a recent version of your Prolog compiler of choice.

    -

    Logtalk compiler and runtime

    +

    Logtalk compiler and runtime

    The compiler sub-directory contains the Prolog source file(s) that implement the Logtalk preprocessor/compiler and the Logtalk runtime. The compiler and the runtime may be split in two (or more) separate files or combined in a single file, depending on the Logtalk release that you are installing.

    -

    Library

    +

    Library

    Starting from version 2.7, Logtalk contains a standard library of useful objects, categories, and protocols. Read the corresponding NOTES file for details about the library contents.

    -

    Examples

    +

    Examples

    Logtalk 2.x contains new implementations of some of the examples provided with previous 1.x versions. The sources of each one of these examples can be found included in a subdirectory with the same name, inside the directory examples. The majority of these examples include a file named SCRIPT that contains cases of simple utilization. Some examples may depend on other examples and library objects to work properly. Read the corresponding NOTES file for details before running an example.

    -

    Logtalk source files

    +

    Logtalk source files

    Each Logtalk entity (object, category or protocol) is contained in a text file named after the entity. The extension .lgt is normally used. The Logtalk preprocessor compiles these files to plain Prolog, replacing the .lgt extension with .pl (the default Prolog extension). If your Prolog compiler expects the Prolog source filenames to end with a specific, different extension, you can set it in the corresponding configuration file.

    -

    Loader utility files

    +

    Loader utility files

    Most examples directories contain a Prolog utility file that can be used to load all included source files. These loader utility files are named <dir name>.loader and should be consulted like any ordinary Prolog file. @@ -158,14 +161,13 @@ Usually these files contain a call to the Logtalk built-in predicates Running a Logtalk session +

    Running a Logtalk session

    We run Logtalk inside a normal Prolog session, after loading the needed files. Logtalk extends but does not modify your Prolog compiler. We can freely mix Prolog queries with the sending of messages and our programs can be made of both normal Prolog clauses and object definitions.

    -

    Starting Logtalk

    +

    Starting Logtalk

    To start a Logtalk session just: @@ -179,7 +181,7 @@ To start a Logtalk session just: Note that the both configuration files and compiler/preprocessor files are Prolog source files. The predicate called to load (and compile) them depends on your Prolog compiler. In case of doubt, consult your Prolog compiler reference manual or take a look at the definition of the predicate lgt_load_prolog_code/1 in the corresponding configuration file.

    -

    Compiling and loading your programs

    +

    Compiling and loading your programs

    Your programs will be made of source files containing your objects, protocols and categories. After changing the Prolog working directory to the one containing your files, you can compile them to disk by calling the Logtalk built-in predicate @@ -207,7 +209,7 @@ Both predicates expect an entity name or a list of entity names (atoms) as an ar If you have more than a few source files then you may want to use a loader utility file containing the calls to the logtalk_load/1 predicate (see the description above). Consulting or compiling the loader file will then compile and load all your Logtalk entities into memory.

    -

    Compiler option flags

    +

    Compiler option flags

    The logtalk_load/1 and logtalk_compile/1 always use the set of default compiler option flags specified in the Logtalk configuration files. Although the default options cover the usual cases, you may want to use a different set of options while compiling or loading some of your Logtalk source files. This can be accomplished by using the logtalk_load/2 or the logtalk_compile/2 built-in predicates. These two predicates accept a list of options affecting how a Logtalk source file is compiled and loaded: @@ -257,7 +259,7 @@ You can use the following options:

    doctype(Option)
    -
    Sets the DOCTYPE reference in the automatically generated XML documenting files. The default value is local, that is, the DOCTYPE reference points to a local DTD file (logtalk.dtd). Other possible values are web (DOCTYPE reference points to the web location http://www.logtalk.org/xml/1.0/logtalk.dtd) and standalone (no DOCTYPE reference in the XML documenting files).
    +
    Sets the DOCTYPE reference in the automatically generated XML documenting files. The default value is local, that is, the DOCTYPE reference points to a local DTD file (logtalk.dtd), residing in the same directory as the XML file. Other possible values are web (DOCTYPE reference points to the web location http://www.logtalk.org/xml/1.0/logtalk.dtd) and standalone (no DOCTYPE reference in the XML documenting files).
    xsl(File)
    @@ -300,7 +302,7 @@ The current values of the default flags can be enumerated using the Smart compilation of source files +

    Smart compilation of source files

    If the Prolog compiler that you are using supports retrieving of file modification dates, then you can turn on smart compilation of source files to avoid recompiling files that have not been modified since last compilation. @@ -315,8 +317,7 @@ Smart compilation of source files is usually off by default. You can turn it on Some caveats that you should be aware. First, some warnings that might be produced when compiling a source file will not show up if the corresponding object file is up-to-date because the source file is not being (re)compiled. Second, if you are using several Prolog compilers with Logtalk, be sure to perform the first compilation of your source files with smart compilation turned off: the intermediate Prolog files generated by the Logtalk preprocessor may be not compatible across Prolog compilers or even for the same Prolog compiler across operating systems (due to different end-of-line characters).

    -
    -

    Using Logtalk for batch processing

    +

    Using Logtalk for batch processing

    If you use Logtalk for batch processing, you probably want to supress most, if not all, banners, messages, and warnings that are normally printed by the system. @@ -328,15 +329,16 @@ To supress printing of the Logtalk startup banner and default flags, turn off th To supress printing of compiling and loading messages (including compiling warnings but not error messages), turn off the option report in the used config file.

    -
    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: January 10, 2003 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/messages.html b/Logtalk/manuals/userman/messages.html index 0286496cc..81973a572 100644 --- a/Logtalk/manuals/userman/messages.html +++ b/Logtalk/manuals/userman/messages.html @@ -1,27 +1,30 @@ - + - Message sending + + Logtalk user manual: message sending -
    -

    Message sending

    + + +

    Message sending

    Note that message sending is only the same as calling an object's predicate if the object does not inherit (or import) predicate definitions from other objects (or categories). Otherwise, the predicate definition that will be executed may depend on the relationships of the object with other Logtalk entities.

    -
    -

    Operators used in message sending

    +

    Operators used in message sending

    Logtalk uses the following three operators for message sending: @@ -35,8 +38,7 @@ Logtalk uses the following three operators for message sending: It is assumed that these operators remain active (once the Logtalk preprocessor and runtime files are loaded) until the end of the Prolog session (this is the usual behaviour of most Prolog compilers). Note that these operator definitions are compatible with the pre-defined operators in the Prolog ISO standard.

    -
    -

    Sending a message to an object

    +

    Sending a message to an object

    Sending a message to an object is done by using the ::/2 infix operator: @@ -48,8 +50,7 @@ Sending a message to an object is done by using the Broadcasting +

    Broadcasting

    In the Logtalk context, broadcasting is interpreted as the sending of the same message to a group of objects or the sending of several messages to the same object. Both needs can be achieved by using the message sending method described above. However, for convenience, Logtalk implements an extended syntax for message sending that makes programming easier in these situations. @@ -103,8 +104,7 @@ This will be equivalent to: | ?- Object1::Message; Object2::Message; ... . -


    -

    Sending a message to self

    +

    Sending a message to self

    While defining a predicate, we sometimes need to send a message to self, that is, to the same object that has received the original message. This is done in Logtalk through the ::/1 prefix operator: @@ -128,8 +128,7 @@ or: The message must match a public or protected predicate declared for the receiving object or a Logtalk/Prolog built-in predicate otherwise an error will be thrown (see the Reference Manual for details). If the message is sent from inside a category or if we are using private inheritance, then the message may also match a private predicate.

    -
    -

    Calling an overridden predicate definition

    +

    Calling an overridden predicate definition

    When redefining a predicate, we sometimes have the need to call the inherited definition in the new code. This possibility, introduced by the Smalltalk language through the super primitive, is available in Logtalk through the ^^/1 prefix operator: @@ -147,8 +146,7 @@ Most of the time we will use this operator by instantiating the pattern: ... . % do something more -


    -

    Message sending and event generation

    +

    Message sending and event generation

    Every message sent using ::/2 operator generates two events, one before and one after the message execution. Messages that are sent using the ::/1 (message to self) operator or the ^^/1 super mechanism described above do not generate any events. The rational behind this distinction is that messages to self and super calls are only used indirectly in the definition of methods or to execute aditional messages with the same target object (represented by self). In other words, events are only generated when using an object's public interface. They can not be used to break object encapsulation. @@ -177,15 +175,16 @@ If we also need the sender of the message to be other than the object containing See the session on Event-driven programming for more details.

    -
    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 6, 2002 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/objects.html b/Logtalk/manuals/userman/objects.html index 2f7f8e77a..4e7c34f6c 100644 --- a/Logtalk/manuals/userman/objects.html +++ b/Logtalk/manuals/userman/objects.html @@ -1,20 +1,24 @@ - + - Objects + + Logtalk user manual: objects -
    -

    Objects

    + + +

    Objects

    Logtalk objects should be regarded as a way to encapsulate and reuse predicate definitions. Instead of a single clause database containing all your code, Logtalk objects provide separated namespaces or databases allowing the partitioning of code in more manageable parts. Logtalk does not try to bring some sort of new dynamic state change concept to Logic Programming or Prolog. @@ -23,15 +27,13 @@ Logtalk objects should be regarded as a way to encapsulate and reuse predicate d In Logtalk, the only pre-defined object is the pseudo-object user that contains all the clauses in the Prolog database not contained in some Logtalk entity.

    -
    -

    Objects, prototypes, classes and instances

    +

    Objects, prototypes, classes and instances

    Objects, prototypes, parents, classes, subclasses, superclasses, metaclasses, instances are all terms that always designate an object. Different names are used to emphasize the role on an object in a particular context. We use a term other than object when we want to make the relationship with other objects explicit. There are only three kinds of entities in Logtalk: objects, protocols and categories.

    -
    -

    Defining a new object

    +

    Defining a new object

    We can define a new object in the same way we write Prolog code: by using a text editor. Each object (category or protocol) we define should be contained in its own text file. It is recommended that this text file be named after the object. By default, all Logtalk source files use the extension .lgt but this is optional and can be set in the configuration files. Compiled source files (by the Logtalk preprocessor) have, by default, a .pl extension. Again, this can be set to match the needs of a particular Prolog compiler in the corresponding configuration file. For instance, we may define an object named vehicle and save it in a vehicle.lgt source file that will be compiled to a vehicle.pl Prolog file. @@ -154,8 +156,7 @@ If you do not need a reflective system solution but still want to play with clas We can have, in the same application, both prototype and class-based hierarchies (and freely exchange messages between all objects). We can not however mix the two types of hierarchies by, e.g., specializing an object that extends another object in this current Logtalk version.

    -
    -

    Parametric objects

    +

    Parametric objects

    Parametric objects have a compound term for name instead of an atom. This compound term usually contains free variables that are instantiated when sending a message to the object. The object predicates can then be coded to depend on the variables instantiation values. When an object state is set at object creation and never changed, parameters provide a better solution than using the object's database via asserts. Parametric objects can also be used to attach a set of predicates to terms that share a common functor and arity. @@ -193,8 +194,7 @@ Both solutions are equally efficient because the cost of the methods this/ Parametric objects are by convention stored in source files named after the objects with the object arity appended. For instance, if we define an object named sort(Type), we may save it in a sort1.lgt text file. This way it is easy to avoid file name clashes when saving Logtalk entities that have the same functor but different arities.

    -
    -

    Finding defined objects

    +

    Finding defined objects

    We can find, by backtracking, all defined objects by calling the current_object/1 built-in predicate with an uninstantiated variable: @@ -206,8 +206,7 @@ We can find, by backtracking, all defined objects by calling the Creating a new object in runtime +

    Creating a new object in runtime

    An object can be dynamically created at runtime by using the create_object/4 built-in predicate: @@ -244,8 +243,7 @@ is equivalent to compiling and loading the object: If we need to create a lot of (dynamic) objects at runtime, then is best to define a metaclass or a prototype with a predicate that will call this built-in predicate to make new objects. This predicate may provide automatic object name generation, name checking and accept object initialization options.

    -
    -

    Abolishing an existing object

    +

    Abolishing an existing object

    Dynamic objects can be abolished using the abolish_object/1 built-in predicate: @@ -257,14 +255,13 @@ Dynamic objects can be abolished using the -


    -

    Object directives

    +

    Object directives

    Object directives are used to set initialization goals and object properties and to document an object dependencies on other Logtalk entities.

    -

    Object initialization

    +

    Object initialization

    We can define a goal to be executed as soon as an object is (compiled and) loaded to memory with the initialization/1 directive: @@ -315,7 +312,7 @@ The initialization goal can also be a message to self in order to call an Note, however, that descendant objects do not inherit initialization directives. In this context, self denotes the object that contains the directive. Also note that by initialization we do not necessarily mean setting an object dynamic state.

    -

    Dynamic objects

    +

    Dynamic objects

    As usually happens with Prolog code, an object can be either static or dynamic. An object created during the execution of a program is always dynamic. An object defined in a file can be either dynamic or static. Dynamic objects are declared by using the dynamic/0 directive in the object source code: @@ -327,7 +324,7 @@ As usually happens with Prolog code, an object can be either static or dynamic. Let us just remember that the loss of performance of the dynamic code is usually of considerable importance to the static code. We should only use dynamic objects when these need to be abolished during program execution. Also, note that we can declare and define dynamic predicates in a static object.

    -

    Object dependencies

    +

    Object dependencies

    Besides the relations declared in the object opening directive, the predicate definitions contained in the object may imply other dependencies. These can be documented by using the calls/1 and the uses/1 directives. @@ -348,7 +345,7 @@ If a predicate definition sends a message to a specific object, this dependence These two directives may be used by the Logtalk runtime to ensure that all needed entities are loaded when running an application.

    -

    Object documentation

    +

    Object documentation

    An object can be documented with arbitrary user-defined information by using the info/1 directive: @@ -360,8 +357,7 @@ An object can be documented with arbitrary user-defined information by using the See the Documenting Logtalk programs session for details.

    -
    -

    Object relationships

    +

    Object relationships

    Logtalk provides five sets of built-in predicates that enable us to query the system about the possible relationships that an object may have with other entities. @@ -430,8 +426,7 @@ or, if we want to know the implementation scope: Note that, if we use an uninstantiated variable for the first argument, we will need to use the current_object/1 built-in predicate to ensure that the entity returned is an object and not a category.

    -
    -

    Object properties

    +

    Object properties

    We can find the properties of defined objects by calling the built-in predicate object_property/2: @@ -443,22 +438,22 @@ We can find the properties of defined objects by calling the built-in predicate An object may have the property static, dynamic, or built_in. Dynamic objects can be abolished in runtime by calling the abolish_object/1 built-in predicate.

    -
    -

    The pseudo-object user

    +

    The pseudo-object user

    Logtalk defines a pseudo-object named user that contains all user predicate definitions not contained in a Logtalk entity. These predicates are assumed to be implicitly declared public.

    -
    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 15, 2002 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/predicates.html b/Logtalk/manuals/userman/predicates.html index ca080f670..78d57d044 100644 --- a/Logtalk/manuals/userman/predicates.html +++ b/Logtalk/manuals/userman/predicates.html @@ -1,33 +1,36 @@ - + - Predicates + + Logtalk user manual: predicates -
    -

    Predicates

    + + +

    Predicates

    Predicate declarations and definitions can be encapsulated inside objects and categories. Protocols can only contain predicate declarations.

    -
    -

    Declaring predicates

    +

    Declaring predicates

    All object (or category) predicates that we want to access from other objects must be explicitly declared. A predicate declaration must contain, at least, a scope directive. Other directives may be used to document the predicate or to ensure proper compilation of the predicate definitions.

    -

    Scope directives

    +

    Scope directives

    A predicate can be public, protected or private. Public predicates can be called from any object. Protected predicates can only be called from the container object or from a container descendant. Private predicates can only be called from the container object. @@ -46,7 +49,7 @@ The scope declarations are made using the -

    Mode directive

    +

    Mode directive

    Many predicates cannot be called with arbitrary arguments with arbitrary instantiation status. The valid arguments and instantiation modes can be documented by using the mode/2 directive. For instance: @@ -108,7 +111,7 @@ Note that most predicates have more than one valid mode implying several mode di Some old Prolog compilers supported some sort of mode directives to improve performance. To the best of my knowledge, there is no modern Prolog compiler supporting these kind of directive. The current version of the Logtalk preprocessor just parses and than discards this directive. Nevertheless, the use of mode directives is a good starting point to the documentation of your predicates.

    -

    Metapredicate directive

    +

    Metapredicate directive

    Some predicates may have arguments that will be called as goals. To ensure that these calls will be executed in the correct scope we need to use the metapredicate/1 directive. For example: @@ -134,7 +137,7 @@ This is similar to the declaration of metapredicates in the ISO draft for Prolog Since each Logtalk entity is independently compiled, this directive must be included in every object or category that contains a definition for the described predicate, even if the predicate declaration is inherited from another entity, to ensure proper compilation of meta-arguments.

    -

    Discontiguous directive

    +

    Discontiguous directive

    The clause of an object (or category) predicate may not be contiguous. In that case, we must declare the predicate discontiguous by using the discontiguous/1 directive: @@ -149,7 +152,7 @@ This is a directive that we should avoid using: it makes your code harder to rea Because each Logtalk entity is compiled independently from other entities, this directive must be included in every object or category that contains a definition for the described predicate (even if the predicate declaration is inherited from other entity).

    -

    Dynamic directive

    +

    Dynamic directive

    An object (or category) predicate can be static or dynamic. By default, all object predicates are static. To declare a dynamic predicate we use the dynamic/1 directive: @@ -161,7 +164,7 @@ An object (or category) predicate can be static or dynamic. By default, all obje Because each Logtalk entity is compiled independently from other entities, this directive must be included in every object or category that contains a definition for the described predicate (even if the predicate declaration is inherited from other entity). If we omit the dynamic declaration then the predicate definition will be compiled to static code. Note that any static object may declare and define dynamic predicates.

    -

    Documenting directive

    +

    Documenting directive

    A predicate can be documented with arbitrary user-defined information by using the info/2 directive: @@ -173,10 +176,9 @@ A predicate can be documented with arbitrary user-defined information by using t The second argument is a list of Key is Value terms. See the Documenting Logtalk programs session for details.

    -
    -

    Defining predicates

    +

    Defining predicates

    -

    Object predicates

    +

    Object predicates

    We define object predicates as we have always defined Prolog predicates, the only difference be that we have four more control structures (the three message sending operators plus the external call operator) to play with. For example, if we wish to define an object containing common utility list predicates like append/2 or member/2 we could write something like: @@ -201,7 +203,7 @@ We define object predicates as we have always defined Prolog predicates, the onl Note that, abstracting from the opening and closing object directives and the scope directives, what we have written is plain Prolog. Calls in a predicate definition body default to the local predicates, unless we use the message sending operators or the external call operator. This enables easy conversion from Prolog code to Logtalk objects: we just need to add the necessary encapsulation and scope directives to the old code.

    -

    Category predicates

    +

    Category predicates

    Because a category can be imported by several different objects, dynamic private predicates must be called using the ::/1 message sending operator. This ensures that the correct predicate definition will be used. For example, if we want to define a category implementing variables using destructive assignment we could write: @@ -228,14 +230,13 @@ Because a category can be imported by several different objects, dynamic private This way, each importing object will have its own definition for the value_/2 private predicate. Furthermore, the get/2 and set/2 predicates will always access/update the correct definition, contained in the object receiving the messages.

    -
    -

    Built-in object predicates (methods)

    +

    Built-in object predicates (methods)

    Logtalk defines a set of built-in object predicates or methods to access message execution context, to find sets of solutions, to inspect objects and for database handling. Similar to Prolog built-in predicates, these built-in methods should not be redefined.

    -

    Local methods

    +

    Local methods

    Logtalk defines four built-in methods to access an object execution context. These methods are compiled in-line and can be freely used without worrying about performance penalties. @@ -305,7 +306,7 @@ After compiling and loading these two objects, we can try the following goal: yes -

    Database methods

    +

    Database methods

    Logtalk provides a set of built-in methods for object database handling similar to the usual database Prolog predicates: abolish/1, asserta/1, assertz/1, clause/2, retract/1 and retractall/1. @@ -314,20 +315,19 @@ Logtalk provides a set of built-in methods for object database handling similar Note that if we define clauses for a dynamic predicate inside a category, some of these methods will fail. Because several objects can import a category, category dynamic predicates can not be abolished and its clauses can not be access by clause/2 or retracted. The clauses can however be overridden for an importing object by using the assert methods.

    -

    All solutions methods

    +

    All solutions methods

    The usual all solutions meta-predicates are pre-defined methods in Logtalk: bagof/3, findall/3 and setof/3. There is also a forall/2 method that implements generate and test loops.

    -

    Reflection methods

    +

    Reflection methods

    Logtalk provides two built-in methods for inspecting object predicates: predicate_property/2, that return predicate properties and current_predicate/1, that enables us to query about predicate definitions. See below for a more detailed description of both methods.

    -
    -

    Predicate properties

    +

    Predicate properties

    We can find the properties of visible predicates by calling the predicate_property/2 built-in method. For example: @@ -359,8 +359,7 @@ The last two properties, declared_in/1 and defined_in/1declared_in/1.

    -
    -

    Finding declared predicates

    +

    Finding declared predicates

    We can find, by backtracking, all visible user predicates by calling the current_predicate/1 built-in method. This method respects the predicate's scope declarations. For instance, the following call: @@ -372,15 +371,16 @@ We can find, by backtracking, all visible user predicates by calling the -


    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 6, 2002 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/programming.html b/Logtalk/manuals/userman/programming.html index 6970ada68..2b4c4df21 100644 --- a/Logtalk/manuals/userman/programming.html +++ b/Logtalk/manuals/userman/programming.html @@ -1,23 +1,26 @@ - + - Programming in Logtalk + + Logtalk user manual: programming in Logtalk -
    -

    Programming in Logtalk

    + -
    -

    Logtalk scope

    +

    Programming in Logtalk

    + +

    Logtalk scope

    Logtalk, as an object-oriented extension to Prolog, shares with it the same preferred areas of application but also extends them with those areas where object-oriented features provide an advantage compared to plain Prolog. Among these areas we have: @@ -47,8 +50,7 @@ Logtalk, as an object-oriented extension to Prolog, shares with it the same pref

    Logtalk support for most key object-oriented features helps users integrating Prolog with object-oriented languages like C++, Java, or Smalltalk by providing an high-level mapping between the two languages.
    -
    -

    Writing programs

    +

    Writing programs

    For a successful programming in Logtalk, you need a good working knowledge of Prolog and an understanding of the principles of object-oriented programming. All guidelines for writing good Prolog code apply as well to Logtalk programming. To those guidelines, you should add the basics of good object-oriented design. @@ -57,7 +59,7 @@ For a successful programming in Logtalk, you need a good working knowledge of Pr One of the advantages of a system like Logtalk is that it enable us to use the currently available object-oriented methodologies, tools, and metrics [Champaux 92] in Prolog programming. That said, writing programs in Logtalk is similar to writing programs in Prolog: we define new predicates describing what is true about our domain objects, about our problem solution. We encapsulate our predicate directives and definitions inside new objects, categories and protocols that we create by hand with a text editor or by using the Logtalk built-in predicates. Some of the information collected during the analysis and design phases can be integrated in the objects, categories and protocols that we define by using the available entity and predicate documenting directives.

    -

    Source files

    +

    Source files

    A Logtalk source file must contain only one entity, either an object, a category, or a protocol. It is recommended that each source file be named after the entity identifier. For parametric objects, the identifier arity can be appended to the identifier functor. By default, all Logtalk source files use the extension .lgt but this is optional and can be set in the configuration files. Compiled source files (by the Logtalk preprocessor) have, by default, a .pl extension. Again, this can be set to match the needs of a particular Prolog compiler in the corresponding configuration file. For example, we may define an object named vehicle and save it in a vehicle.lgt source file that will be compiled to a vehicle.pl Prolog file. If we have a sort(_) parametric object we can save it on a sort1.lgt source file that will be compiled to a sort1.pl Prolog file. This name scheme helps avoid file name conflicts (remember that all Logtalk entities share the same name space). @@ -66,13 +68,13 @@ A Logtalk source file must contain only one entity, either an object, a category Any Logtalk source file can contain arbitrary directives and clauses before the opening entity directive. These directives and clauses will not be compiled by the Logtalk preprocessor and will be copied unchanged to the beginning of the corresponding Prolog output file. This feature is included to help the integration of Logtalk with other Prolog extensions like, for example, constraint programming extensions.

    -

    Portable programs

    +

    Portable programs

    Logtalk is compatible with almost all modern Prolog compilers. However, this does not mean that our Logtalk programs will have the same level of portability. If possible, we should only use in our programs Logtalk built-in predicates and ISO Prolog defined built-in predicates. If we need to use built-in predicates that may not be available in other Prolog compilers, we should try to encapsulate the non-portable code in a minimum of objects and provide a portable interface for that code. An example will be code that access operating-system specific features. The Logtalk compiler can warn us of the use of non-ISO defined built-in predicates by using the portability/1 compiler option.

    -

    Avoiding common errors

    +

    Avoiding common errors

    Try to write objects and protocol documentation before writing any other code; if you are having trouble documenting a predicate perhaps we need to go back to the design stage. @@ -93,15 +95,16 @@ In general, Logtalk does not verify if a user predicate call/return arguments co Logtalk error handling strongly depends on the ISO compliance of the chosen Prolog compiler. For instance, the error terms that are generated by some Logtalk built-in predicates assume that the Prolog built-ins behave as defined in the ISO standard regarding error conditions. In particular, if your Prolog compiler does not support a read_term/3 built-in predicate compliant with the ISO Prolog Standard definition, then the current version of the Logtalk preprocessor will not be able to detect misspell variables in your source code.

    -
    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 6, 2002 -

    -
    + + + + - diff --git a/Logtalk/manuals/userman/protocols.html b/Logtalk/manuals/userman/protocols.html index ed0ad0660..1038915da 100644 --- a/Logtalk/manuals/userman/protocols.html +++ b/Logtalk/manuals/userman/protocols.html @@ -1,27 +1,30 @@ - + - Protocols + + Logtalk user manual: protocols -
    -

    Protocols

    + + +

    Protocols

    Protocols enable the separation between interface and implementation: several objects can implement the same protocol and an object can implement several protocols. There are no pre-defined protocols in Logtalk.

    -
    -

    Defining a new protocol

    +

    Defining a new protocol

    We can define a new protocol in the same way we write Prolog code: by using a text editor. Each protocol (object or category) we define should be contained in its own text file. It is recommended that this text file be named after the protocol. By default, all Logtalk source files use the extension .lgt but this is optional and can be set in the configuration files. Compiled source files (by the Logtalk preprocessor) have, by default, a .pl extension. Again, this can be set to match the needs of a particular Prolog compiler in the corresponding configuration file. For example, we may define a protocol named listp and save it in a listp.lgt source file that will be compiled to a listp.pl Prolog file. @@ -47,8 +50,7 @@ If a protocol extends one or more protocols, then the opening directive will be: :- end_protocol. -


    -

    Finding defined protocols

    +

    Finding defined protocols

    We can find, by backtracking, all defined protocols by using the current_protocol/1 built-in predicate with an uninstantiated variable: @@ -60,8 +62,7 @@ We can find, by backtracking, all defined protocols by using the Creating a new protocol in runtime +

    Creating a new protocol in runtime

    We can create a new (dynamic) protocol in runtime by calling the Logtalk built-in predicate create_protocol/3: @@ -95,8 +96,7 @@ is equivalent to compiling and loading the protocol: If we need to create a lot of (dynamic) protocols at runtime, then is best to define a metaclass or a prototype with a predicate that will call this built-in predicate in order to provide more sophisticated behaviour.

    -
    -

    Abolishing an existing protocol

    +

    Abolishing an existing protocol

    Dynamic protocols can be abolished using the abolish_protocol/1 built-in predicate: @@ -108,14 +108,13 @@ Dynamic protocols can be abolished using the -


    -

    Protocol directives

    +

    Protocol directives

    Protocol directives are used to set initialization goals and protocol properties.

    -

    Protocol initialization

    +

    Protocol initialization

    We can define a goal to be executed as soon as a protocol is (compiled and) loaded to memory with the initialization/1 directive: @@ -127,7 +126,7 @@ We can define a goal to be executed as soon as a protocol is (compiled and) load The argument can be any valid Prolog or Logtalk goal, including a message sending call.

    -

    Dynamic protocols

    +

    Dynamic protocols

    As usually happens with Prolog code, a protocol can be either static or dynamic. A protocol created during the execution of a program is always dynamic. A protocol defined in a file can be either dynamic or static. Dynamic protocols are declared by using the dynamic/0 directive in the protocol source code: @@ -139,7 +138,7 @@ As usually happens with Prolog code, a protocol can be either static or dynamic. Let us just remember that the loss of performance of the dynamic code is usually of considerable importance to the static code. We should only use dynamic protocols when these need to be abolished during program execution.

    -

    Protocol documentation

    +

    Protocol documentation

    A protocol can be documented with arbitrary user-defined information by using the info/1 directive: @@ -151,8 +150,7 @@ A protocol can be documented with arbitrary user-defined information by using th See the Documenting Logtalk programs session for details.

    -
    -

    Protocol relationships

    +

    Protocol relationships

    Logtalk provides two sets of built-in predicates that enable us to query the system about the possible relationships that a protocol have with other entities. @@ -185,8 +183,7 @@ or, if we want to know the implementation scope: Note that, if we use an uninstantiated variable for the first argument, we will need to use the current_object/1 or current_category/1 built-in predicates to identify the kind of entity returned.

    -
    -

    Protocol properties

    +

    Protocol properties

    We can find the properties of defined protocols by calling the protocol_property/2 built-in predicate: @@ -198,8 +195,7 @@ We can find the properties of defined protocols by calling the abolish_protocol/1 built-in predicate.

    -
    -

    Implementing protocols

    +

    Implementing protocols

    Any number of objects or categories can implement a protocol. The syntax is very simple: @@ -250,15 +246,16 @@ Omitting the scope keyword is equivalent to writing: The same rules applies to protocols implemented by categories.

    -
    -

    -Previous | Next | Table of Contents | Bibliography | Glossary -

    -

    -Last updated on: August 6, 2002 -

    -
    + + + + - diff --git a/Logtalk/wenv/NOTES b/Logtalk/wenv/NOTES index cc88c2ad8..6fa683956 100644 --- a/Logtalk/wenv/NOTES +++ b/Logtalk/wenv/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/emacs/NOTES b/Logtalk/wenv/emacs/NOTES new file mode 100644 index 000000000..6c0f09930 --- /dev/null +++ b/Logtalk/wenv/emacs/NOTES @@ -0,0 +1,16 @@ +================================================================= +Logtalk - Object oriented extension to Prolog +Release 2.15.5 + +Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. +================================================================= + + +This directory contains a logtalk.el file that provides syntax +highlighting for editing Logtalk source files with the Emacs text +editor (http://www.gnu.org/software/emacs/emacs.html). + +To install follow the instructions contained in the file itself. + + +THIS FONT-LOCK CONFIGURATION FILE IS UNDER DEVELOPMENT. diff --git a/Logtalk/wenv/emacs/logtalk.el b/Logtalk/wenv/emacs/logtalk.el new file mode 100644 index 000000000..c33204624 --- /dev/null +++ b/Logtalk/wenv/emacs/logtalk.el @@ -0,0 +1,251 @@ +;; logtalk.el -- font lock support for Logtalk (http://www.logtalk.org/) + +;; Copyright (C) 2003 Paulo Moura + +;; Author: Paulo Moura +;; Creation date: November 15, 2003 +;; Last modification date: December 16, 2003 +;; Version: 0.4 + +;; Installation: +;; +;; Add the following lines in your Emacs init file, for example +;; your ~/.emacs file. +;; +;; (add-hook 'logtalk-mode-hook 'my-logtalk-mode-hook) +;; +;; (defun my-logtalk-mode-hook () +;; (cond (window-system +;; (require 'logtalk-font-lock) +;; (turn-on-font-lock)))) +;; +;; (setq font-lock-maximum-decoration t) +;; +;; (autoload 'logtalk-mode "logtalk" "Major mode for editing Logtalk programs." t) +;; (setq auto-mode-alist (cons '("\\.lgt\\'" . logtalk-mode) auto-mode-alist)) + + + +;; setup + +(defvar logtalk-mode-version "0.2" + "Logtalk mode version number") + +(defvar logtalk-mode-hook nil) + +(defvar logtalk-mode-map nil) + +(if logtalk-mode-map nil + (setq logtalk-mode-map (make-keymap))) + + + +;; syntax highlighting + +(defvar logtalk-font-lock-keywords nil) + + + +;; syntax table + +(defvar logtalk-mode-syntax-table + (let ((logtalk-mode-syntax-table (make-syntax-table))) + (modify-syntax-entry ?_ "w" logtalk-mode-syntax-table) + (modify-syntax-entry ?_ "_" logtalk-mode-syntax-table) + (modify-syntax-entry ?/ ". 14b" logtalk-mode-syntax-table) + (modify-syntax-entry ?* ". 23b" logtalk-mode-syntax-table) + (modify-syntax-entry ?% "<" logtalk-mode-syntax-table) + (modify-syntax-entry ?\n ">" logtalk-mode-syntax-table) + logtalk-mode-syntax-table) + "Syntax table for logtalk-mode") + + + +;; create logtalk font-lock-faces + +(make-face 'logtalk-directive-face) +(set-face-foreground 'logtalk-directive-face "brown") + +(make-face 'logtalk-built-in-predicate-face) +(set-face-foreground 'logtalk-built-in-predicate-face "darkmagenta") + +(make-face 'logtalk-built-in-method-face) +(set-face-foreground 'logtalk-built-in-method-face "darkmagenta") + +(make-face 'logtalk-message-operator-face) +(set-face-foreground 'logtalk-message-operator-face "blue") + +(make-face 'logtalk-string-face) +(set-face-foreground 'logtalk-string-face "firebrick") + +(make-face 'logtalk-number-face) +(set-face-foreground 'logtalk-number-face "blue") + +(make-face 'logtalk-comment-face) +(set-face-foreground 'logtalk-comment-face "forest green") + + +;; set the font-lock-comment-face to the logtalk-comment-face + +(setq font-lock-comment-face 'logtalk-comment-face) + + +;; set the font-lock-string-face to the logtalk-string-face + +(setq font-lock-string-face 'logtalk-string-face) + + + +(setq logtalk-font-lock-strings + '( + ("\\(\"\\([^\n\"]\\|\\\\\"\\)*\"\\)" 1 'logtalk-string-face) + ("\\(^\\|[^0-9]\\)\\('\\([^\n']\\|\\\\'\\)*'\\)" 2 'logtalk-string-face) + )) + + +(setq logtalk-font-lock-directives + '( + ("\\(\\(end_\\(?:category\\|object\\|protocol\\)\\)\\)\\([\.]\\)" 1 'logtalk-directive-face) + ("\\(category\\|object\\|protocol\\)\\([(]\\)" 1 'logtalk-directive-face) + ("\\(p\\(?:r\\(?:ivate\\|otected\\)\\|ublic\\)\\)\\([(]\\)" 1 'logtalk-directive-face) + ("\\(calls\\|d\\(?:iscontiguous\\|ynamic\\)\\|in\\(?:fo\\|itialization\\)\\|m\\(?:\\(?:etapredicat\\|od\\)e\\)\\|op\\|uses\\)\\([(]\\)" 1 'logtalk-directive-face) + ("\\(dynamic\\)\\([\.]\\)" 1 'logtalk-directive-face) + ("\\(\\(?:extend\\|i\\(?:mp\\(?:\\(?:lemen\\|or\\)t\\)\\|nstantiate\\)\\|specialize\\)s\\)\\([(]\\)" 1 'logtalk-directive-face) + )) + + +(setq logtalk-font-lock-built-in-methods + '( + ("\\(parameter\\|se\\(?:lf\\|nder\\)\\|this\\)\\([(]\\)" 1 'logtalk-built-in-method-face) + ("\\(current_predicate\\|predicate_property\\)\\([(]\\)" 1 'logtalk-built-in-method-face) + ("\\(a\\(?:bolish\\|ssert[az]\\)\\|clause\\|retract\\(?:all\\)?\\)\\([(]\\)" 1 'logtalk-built-in-method-face) + ("\\(bagof\\|f\\(?:\\(?:ind\\|or\\)all\\)\\|setof\\)\\([(]\\)" 1 'logtalk-built-in-method-face) + ("\\(after\\|before\\)\\([(]\\)" 1 'logtalk-built-in-method-face) + ("\\(phrase\\)\\([(]\\)" 1 'logtalk-built-in-method-face) + )) + + +(setq logtalk-font-lock-built-in-predicates + '( + ("\\(current_\\(?:category\\|object\\|protocol\\)\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(create\\(?:_object\\|e_\\(?:category\\|protocol\\)\\)\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(abolish_\\(?:category\\|object\\|protocol\\)\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(\\(?:category\\|object\\|protocol\\)_property\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(extends_\\(?:object\\|protocol\\)\\|i\\(?:mp\\(?:lements_protocol\\|orts_category\\)\\|nstantiates_object\\)\\|specializes_object\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(abolish_events\\|current_event\\|define_events\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(\\(?:curren\\|se\\)t_logtalk_flag\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(logtalk_\\(?:compile\\|load\\|version\\)\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(forall\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(retractall\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ;; + ;; control constructs: + ;; + ("\\(ca\\(?:ll\\|tch\\)\\|throw\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(fail\\|true\\|!\\)" . 'logtalk-built-in-predicate-face) + ;; + ;; logic and control: + ;; + ("\\(once\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\\\\\+\\|repeat" . 'logtalk-built-in-predicate-face) + ;; + ;; term testing: + ;; + ("\\(atom\\(?:ic\\)?\\|compound\\|float\\|\\(?:intege\\|n\\(?:onva\\|umbe\\)\\|va\\)r\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ;; + ;; term comparison: + ;; + ("==\\|@\\(?:=<\\|>=\\|[<>]\\)\\|\\\\==" . 'logtalk-built-in-predicate-face) + ;; + ;; term creation and decomposition: + ;; + ("\\(arg\\|copy_term\\|functor\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("=\\.\\." . 'logtalk-built-in-predicate-face) + ;; + ;; arithemtic evaluation: + ;; + ("\\<\\is\\>" . 'logtalk-built-in-predicate-face) + ;; + ;; arithemtic comparison: + ("=:=\\|@\\(?:=<\\|>=\\|[<>]\\)\\|\\\\==" . 'logtalk-built-in-predicate-face) + ;; + ;; term unification: + ;; + ("\\\\?=" . 'logtalk-built-in-predicate-face) + ;; + ;; evaluable functors: + ;; + ("\\(abs\\|ceiling\\|flo\\(?:at\\(?:_\\(?:\\(?:fractional\\|integer\\)_part\\)\\)?\\|or\\)\\|mod\\|r\\(?:em\\|ound\\)\\|sign\\|truncate\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("//\\|[*+/-]" . 'logtalk-built-in-predicate-face) + ("\\([[:blank:]]\\)\\(rem\\|mod\\)\\([[:blank:]]\\)" 2 'logtalk-built-in-predicate-face) + ;; + ;; other arithemtic functors: + ;; + ("\\(atan\\|cos\\|exp\\|log\\|s\\(?:in\\|qrt\\)\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\*\\*" 1 'logtalk-built-in-predicate-face) + ;; + ;; stream selection and control: + ;; + ("\\(at_end_of_stream\\|c\\(?:lose\\|urrent_\\(?:\\(?:in\\|out\\)put\\)\\)\\|flush_output\\|open\\|s\\(?:et_\\(?:input\\|output\\|stream_position\\)\\|tream_property\\)\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("\\(at_end_of_stream\\)" . 'logtalk-built-in-predicate-face) + ;; + ;; character input/output: + ;; + ("\\(get_c\\(?:har\\|ode\\)\\|nl\\|p\\(?:eek_c\\(?:har\\|ode\\)\\|ut_c\\(?:har\\|ode\\)\\)\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ;; + ;; byte input/output: + ;; + ("\\(\\(?:get\\|p\\(?:eek\\|ut\\)\\)_byte\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ;; + ;; term input/output: + ;; + ("\\(c\\(?:har_conversion\\|urrent_\\(?:char_conversion\\|op\\)\\)\\|op\\|read\\(?:_term\\)?\\|write\\(?:_\\(?:canonical\\|term\\)\\|q\\)?\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ;; + ;; implementation defined hooks functions: + ;; + ("\\(\\(?:curren\\|se\\)t_prolog_flag\\|halt\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ("halt" . 'logtalk-built-in-predicate-face) + ;; + ;; atomic term processing: + ;; + ("\\(atom_\\(?:c\\(?:hars\\|o\\(?:des\\|ncat\\)\\)\\|length\\)\\|char_code\\|number_c\\(?:\\(?:har\\|ode\\)s\\)\\|sub_atom\\)\\([(]\\)" 1 'logtalk-built-in-predicate-face) + ;; + ;; bitwise functors: + ("/\\\\\\|<<\\|>>\\|\\\\/" . 'logtalk-built-in-predicate-face) + ("\\\\" . 'logtalk-built-in-predicate-face) + )) + + + +(setq logtalk-font-lock-operators + '( + ("::\\|\\^\\^\\|[{}]" . 'logtalk-message-operator-face) + )) + + + +(setq logtalk-font-lock-keywords + (append + logtalk-font-lock-strings + logtalk-font-lock-directives + logtalk-font-lock-built-in-methods + logtalk-font-lock-built-in-predicates + logtalk-font-lock-operators + )) + + + +;; entry function + +(defun logtalk-mode () + "Major mode for editing Logtalk files" + (interactive) + (kill-all-local-variables) + (setq tab-width 4) + (set-syntax-table logtalk-mode-syntax-table) + (set (make-local-variable 'font-lock-defaults) '(logtalk-font-lock-keywords)) + (turn-on-font-lock) + (setq major-mode 'logtalk-mode) + (setq mode-name "Logtalk") + (run-hooks 'logtalk-mode-hook)) + +(provide 'logtalk-mode) diff --git a/Logtalk/wenv/jedit/NOTES b/Logtalk/wenv/jedit/NOTES index 16f44b992..8b2d4f0d9 100644 --- a/Logtalk/wenv/jedit/NOTES +++ b/Logtalk/wenv/jedit/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/nedit/NOTES b/Logtalk/wenv/nedit/NOTES index 6c0dd2588..17c3b71c2 100644 --- a/Logtalk/wenv/nedit/NOTES +++ b/Logtalk/wenv/nedit/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/pb/NOTES b/Logtalk/wenv/pb/NOTES index e6a0c913e..60e048d21 100644 --- a/Logtalk/wenv/pb/NOTES +++ b/Logtalk/wenv/pb/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/subethaedit/NOTES b/Logtalk/wenv/subethaedit/NOTES new file mode 100644 index 000000000..9b354c282 --- /dev/null +++ b/Logtalk/wenv/subethaedit/NOTES @@ -0,0 +1,18 @@ +================================================================= +Logtalk - Object oriented extension to Prolog +Release 2.15.5 + +Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. +================================================================= + + +This directory contains files that provide syntax highlighting +for editing Logtalk source files with the SubEthaEdit text editor +(http://www.codingmonkeys.de/subethaedit/). + + +To install copy the file "logtalk.plist" to the folder +"~/Library/Application Support/SubEthaEdit/Syntax Definitions/" or to +"/Library/Application Support/SubEthaEdit/Syntax Definitions/" +(create the folder if it does not exist). + diff --git a/Logtalk/wenv/subethaedit/logtalk.plist b/Logtalk/wenv/subethaedit/logtalk.plist new file mode 100644 index 000000000..c57b161b7 --- /dev/null +++ b/Logtalk/wenv/subethaedit/logtalk.plist @@ -0,0 +1,441 @@ + + + + + + Header + + Name + Logtalk + Extensions + lgt + Valid Characters for Variables + _0987654321abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ + + + Styles + + + + Name + Entity Directives + Color + + 0.408 + 0.220 + 0.129 + + Multiline + + Regular Expressions + + \:\-[[:space:]](object) + \:\-[[:space:]](end_object)\. + \:\-[[:space:]](protocol) + \:\-[[:space:]](end_protocol)\. + \:\-[[:space:]](category) + \:\-[[:space:]](end_category)\. + \:\-[[:space:]](initialization)\( + \:\-[[:space:]](info)\( + \:\-[[:space:]](mode)\( + \:\-[[:space:]](dynamic)\( + \:\-[[:space:]](dynamic)\. + \:\-[[:space:]](discontiguous)\( + \:\-[[:space:]](public)\( + \:\-[[:space:]](protected)\( + \:\-[[:space:]](private)\( + \:\-[[:space:]](metapredicate)\( + \:\-[[:space:]](op)\( + \:\-[[:space:]](calls)\( + \:\-[[:space:]](uses)\( + + + + + Name + Entity Relations + Color + + 0.408 + 0.220 + 0.129 + + Multiline + + Regular Expressions + + (instantiates)\( + (specializes)\( + (extends)\( + (imports)\( + (implements)\( + + + + + Name + Message Sending Operators + Color + + 0.000 + 0.000 + 1.000 + + Multiline + + Regular Expressions + + :: + \^\^ + + + + + Name + External Call + Color + + 0.000 + 0.000 + 1.000 + + Multiline + + Regular Expressions + + { + } + + + + + Name + Control Constructs + Color + + 0.463 + 0.059 + 0.298 + + Multiline + + Regular Expressions + + (call)\( + (catch)\( + (throw)\( + (true) + (fail) + + + + + Name + Built-in Methods + Color + + 0.463 + 0.059 + 0.298 + + Multiline + + Regular Expressions + + (parameter)\( + (self)\( + (sender)\( + (this)\( + (current_predicate)\( + (predicate_property)\( + (abolish)\( + (asserta)\( + (assertz)\( + (clause)\( + (retract)\( + (retractall)\( + (bagof)\( + (findall)\( + (forall)\( + (setof)\( + (before)\( + (after)\( + (phrase)\( + + + + + Name + Built-in Predicates + Color + + 0.463 + 0.059 + 0.298 + + Multiline + + Regular Expressions + + (current_object)\( + (current_protocol)\( + (current_category)\( + (create_object)\( + (create_protocol)\( + (create_category)\( + (object_property)\( + (protocol_property)\( + (category_property)\( + (abolish_object)\( + (abolish_protocol)\( + (abolish_category)\( + (extends_object)\( + (extends_protocol)\( + (implements_protocol)\( + (instantiates_object)\( + (specializes_object)\( + (imports_category)\( + (abolish_events)\( + (current_event)\( + (define_events)\( + (current_logtalk_flag)\( + (set_logtalk_flag)\( + (logtalk_compile)\( + (logtalk_load)\( + (forall)\( + (logtalk_version)\( + (retractall)\( + + + + + Name + Other Built-in Predicates + Color + + 0.463 + 0.059 + 0.298 + + Multiline + + Regular Expressions + + + [[:space:]]+(=)[[:space:]]+ + [[:space:]]+(\\=)[[:space:]]+ + (unify_with_occurs_check)\( + + (var)\( + (atom)\( + (integer)\( + (float)\( + (atomic)\( + (compound)\( + (nonvar)\( + (number)\( + + [[:space:]]+(==)[[:space:]]+ + [[:space:]]+(\\==)[[:space:]]+ + [[:space:]]+(@=<)[[:space:]]+ + [[:space:]]+(@<)[[:space:]]+ + [[:space:]]+(@>=)[[:space:]]+ + [[:space:]]+(@>)[[:space:]]+ + + (functor)\( + (arg)\( + [[:space:]]+(=\.\.)[[:space:]]+ + (copy_term)\( + + [[:space:]]+(is)[[:space:]]+ + + [[:space:]]+(=:=)[[:space:]]+ + [[:space:]]+(=\=)[[:space:]]+ + [[:space:]]+(<)[[:space:]]+ + [[:space:]]+(=<)[[:space:]]+ + [[:space:]]+(>)[[:space:]]+ + [[:space:]]+(>=)[[:space:]]+ + + [[:space:]]+(\+)[[:space:]]+ + [[:space:]]+(\-)[[:space:]]+ + [[:space:]]+(\*)[[:space:]]+ + [[:space:]]+(//)[[:space:]]+ + [[:space:]]+(/)[[:space:]]+ + [[:space:]]+(rem)[[:space:]]+ + [[:space:]]+(mod)[[:space:]]+ + (rem)\( + (mod)\( + (abs)\( + (sign)\( + (float_integer_part)\( + (float_fractional_part)\( + (float)\( + (floor)\( + (truncate)\( + (round)\( + (ceiling)\( + + [[:space:]]+(\*\*)[[:space:]]+ + (sin)\( + (cos)\( + (atan)\( + (exp)\( + (log)\( + (sqrt)\( + + [[:space:]]+(>>)[[:space:]]+ + [[:space:]]+(<<)[[:space:]]+ + [[:space:]]+(/\\)[[:space:]]+ + [[:space:]]+(\\/)[[:space:]]+ + [[:space:]]+(\\)[[:space:]]+ + + (current_input)\( + (current_output)\( + (set_input)\( + (set_output)\( + (open)\( + (close)\( + (flush_output) + (stream_property)\( + (at_end_of_stream) + (set_stream_position)\( + + (get_char)\( + (get_code)\( + (peek_char)\( + (peek_code)\( + (put_char)\( + (put_code)\( + (nl) + + (get_byte)\( + (peek_byte)\( + (put_byte)\( + + (read_term)\( + (read)\( + (write_term)\( + (write)\( + (writeq)\( + (write_canonical)\( + (op)\( + (current_op)\( + (char_conversion)\( + (current_char_conversion)\( + + (\\\+)[[:space:]]+ + (once)\( + (repeat) + + (atom_length)\( + (atom_concat)\( + (sub_atom)\( + (atom_chars)\( + (atom_codes)\( + (char_code)\( + (number_chars)\( + (number_codes)\( + + (set_prolog_flag)\( + (current_prolog_flag)\( + (halt) + + + + + Name + Numbers + Color + + 0.000 + 0.000 + 0.404 + + Multiline + + Plain Strings + + [0-9]+\.*[0-9]+([eE][-+][1-9][0-9]*)? + 0b[0-1]+ + 0o[0-8]+ + 0x[0-9a-fA-F]+ + + + + + Name + Quoted Atoms and Strings + Color + + 0.537 + 0.075 + 0.082 + + Multiline + + Regular Expressions + + '(.+)' + "(.+)" + + + + + Name + Character Code Constants + Color + + 0.000 + 0.000 + 0.404 + + Multiline + + Regular Expressions + + (0'[[:alnum:]]) + + + + + Name + Single Line Comment + Color + + 0.137 + 0.431 + 0.145 + + Multiline + + Comment + + Regular Expressions + + %.* + + + + + Name + Block Comment + Color + + 0.137 + 0.431 + 0.145 + + Multiline + + Comment + + Multiline Begin + /* + Multiline End + */ + + + + + + diff --git a/Logtalk/wenv/tests/NOTES b/Logtalk/wenv/tests/NOTES new file mode 100644 index 000000000..514fdb8f9 --- /dev/null +++ b/Logtalk/wenv/tests/NOTES @@ -0,0 +1,10 @@ +================================================================= +Logtalk - Object oriented extension to Prolog +Release 2.15.5 + +Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. +================================================================= + + +This directory contains example Logtalk source files for testing +the syntax coloring configuration files for supported text editors. diff --git a/Logtalk/wenv/tests/category.lgt b/Logtalk/wenv/tests/category.lgt new file mode 100644 index 000000000..cee741814 --- /dev/null +++ b/Logtalk/wenv/tests/category.lgt @@ -0,0 +1,25 @@ + +% this is a single-line comment + +/* +this is +a block +comment +*/ + +:- category(category, + implements(protocol)). + + :- info([ + version is 1.0, + author is 'Paulo Moura', + date is 2003/12/18, + comment is 'Sample category for testing syntax coloring.']). + + :- dynamic. + + :- calls(some_other_protocol). + + :- uses(another_object). + +:- end_category. diff --git a/Logtalk/wenv/tests/class.lgt b/Logtalk/wenv/tests/class.lgt new file mode 100644 index 000000000..08934ebd8 --- /dev/null +++ b/Logtalk/wenv/tests/class.lgt @@ -0,0 +1,29 @@ + +% this is a single-line comment + +/* +this is +a block +comment +*/ + +:- object(class, + implements(protocol), + imports(category), + instantiates(metaclass), + specializes(superclass)). + + + :- info([ + version is 1.0, + author is 'Paulo Moura', + date is 2003/12/18, + comment is 'Sample class for testing syntax coloring.']). + + :- dynamic. + + :- calls(some_other_protocol). + + :- uses(another_object). + +:- end_object. diff --git a/Logtalk/wenv/tests/protocol.lgt b/Logtalk/wenv/tests/protocol.lgt new file mode 100644 index 000000000..0bc48efce --- /dev/null +++ b/Logtalk/wenv/tests/protocol.lgt @@ -0,0 +1,21 @@ + +% this is a single-line comment + +/* +this is +a block +comment +*/ + +:- protocol(extended, + extends(minimal)). + + :- info([ + version is 1.0, + author is 'Paulo Moura', + date is 2003/12/18, + comment is 'Sample protocol for testing syntax coloring.']). + + :- dynamic. + +:- end_protocol. diff --git a/Logtalk/wenv/tests/prototype.lgt b/Logtalk/wenv/tests/prototype.lgt new file mode 100644 index 000000000..864114ac6 --- /dev/null +++ b/Logtalk/wenv/tests/prototype.lgt @@ -0,0 +1,27 @@ + +% this is a single-line comment + +/* +this is +a block +comment +*/ + +:- object(prototype, + implements(protocol), + imports(category), + extends(parent)). + + :- info([ + version is 1.0, + author is 'Paulo Moura', + date is 2003/12/18, + comment is 'Sample prototype for testing syntax coloring.']). + + :- dynamic. + + :- calls(some_other_protocol). + + :- uses(another_object). + +:- end_object. diff --git a/Logtalk/wenv/textpad/NOTES b/Logtalk/wenv/textpad/NOTES index b13392b85..df63fc4bd 100644 --- a/Logtalk/wenv/textpad/NOTES +++ b/Logtalk/wenv/textpad/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/vim/NOTES b/Logtalk/wenv/vim/NOTES index 2516c709f..22b1e6ebe 100644 --- a/Logtalk/wenv/vim/NOTES +++ b/Logtalk/wenv/vim/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/xml/NOTES b/Logtalk/xml/NOTES index 29207cfd2..fd2b51775 100644 --- a/Logtalk/xml/NOTES +++ b/Logtalk/xml/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.4 +Release 2.15.5 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -27,8 +27,9 @@ The .xml documenting files can be either generated as standalone XML files or contain a reference to the Logtalk DTD file, logtalk.dtd. The reference to the logtalk.dtd file can be either a local reference or a URI reference. By default, all .xml documenting files contain a local reference but that -can be changed either in the config files or by using the doctype/1 compiler -option. Choose the option value that works best for your XSLT tools. +can be changed either in the config files, by setting a Logtalk compiler +flag, or by using the doctype/1 compiler option. Choose the option value +that works best for your XSLT tools. Brief description of each file in this folder: @@ -50,11 +51,12 @@ lgtxml.xsl HTML files point to related XML files. -lgtpdfa4.xsl lgtpdfus.xsl +lgtpdfa4.xsl +lgtpdfus.xsl XSLT files to generate PDF files from the .xml files (formatted either for A4 paper or US Letter paper) using XSL Formatting Objects. Tested - with the XSL:FO processors Apache FOP 0.20.4 (http://xml.apache.org/fop), + with the XSL:FO processors Apache FOP 0.20.5 (http://xml.apache.org/fop), PassiveTeX 1.21 (http://www.tei-c.org.uk/Software/passivetex/), and RenderX 2.77 (http://www.renderx.com/). @@ -124,18 +126,20 @@ pdf.sh Sample Unix shell script to batch convert .xml files to .pdf files. Edit the script to match your environment and paper format preference - before running it. - Requires Apache FOP processor (http://xml.apache.org/fop). Tested with - version 0.20.4. + before running it. Requires Apache FOP processor (http://xml.apache.org/fop). + Tested with version 0.20.5 (to workaround a bug on the XALAN processor used + by FOP, you should use the compiler option doctype(standalone) when compiling + your Logtalk source files). pdf.bat Sample DOS batch script to convert .xml files to .pdf files. Edit the script to match your environment and paper format preference - before running it. - Requires Apache FOP processor (http://xml.apache.org/fop). Tested with - version 0.20.4. + before running it. Requires Apache FOP processor (http://xml.apache.org/fop). + Tested with version 0.20.5 (to workaround a bug on the XALAN processor used + by FOP, you should use the compiler option doctype(standalone) when compiling + your Logtalk source files). Note that you can write other XSLT files for converting the XML files to diff --git a/Logtalk/xml/html.sh b/Logtalk/xml/html.sh index 7c419dcd2..2c298ac3f 100644 --- a/Logtalk/xml/html.sh +++ b/Logtalk/xml/html.sh @@ -1,11 +1,12 @@ #!/bin/sh -XT_PATH="/Applications/XT" -SAX_PATH="/Applications/XT" -XP_PATH="/Applications/XT" +XT_PATH="/Applications/XML/XT" +SAX_PATH="/Applications/XML/XT" +XP_PATH="/Applications/XML/XP" XSLT="lgthtml.xsl" + if [ -z "$1" ]; then title="Entity documentation index" else diff --git a/Logtalk/xml/ie50.xsl b/Logtalk/xml/ie50.xsl index 18f8c12f7..b34fb211d 100644 --- a/Logtalk/xml/ie50.xsl +++ b/Logtalk/xml/ie50.xsl @@ -8,7 +8,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgthtml.xsl b/Logtalk/xml/lgthtml.xsl index 88fbe2254..eafecffb3 100644 --- a/Logtalk/xml/lgthtml.xsl +++ b/Logtalk/xml/lgthtml.xsl @@ -14,7 +14,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgtpdfa4.xsl b/Logtalk/xml/lgtpdfa4.xsl index 76e0213d3..9a8643d8d 100644 --- a/Logtalk/xml/lgtpdfa4.xsl +++ b/Logtalk/xml/lgtpdfa4.xsl @@ -9,7 +9,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgtpdfus.xsl b/Logtalk/xml/lgtpdfus.xsl index e0dce0912..5b3d02851 100644 --- a/Logtalk/xml/lgtpdfus.xsl +++ b/Logtalk/xml/lgtpdfus.xsl @@ -9,7 +9,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgtxml.xsl b/Logtalk/xml/lgtxml.xsl index e06992fe2..079c00fce 100644 --- a/Logtalk/xml/lgtxml.xsl +++ b/Logtalk/xml/lgtxml.xsl @@ -14,7 +14,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/logtalk.dtd b/Logtalk/xml/logtalk.dtd index 9c68b4929..805009c13 100644 --- a/Logtalk/xml/logtalk.dtd +++ b/Logtalk/xml/logtalk.dtd @@ -3,7 +3,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/logtalk.xsd b/Logtalk/xml/logtalk.xsd index 0f87acb6c..361ac2610 100644 --- a/Logtalk/xml/logtalk.xsd +++ b/Logtalk/xml/logtalk.xsd @@ -15,7 +15,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/pdf.bat b/Logtalk/xml/pdf.bat index 956e94c0f..94ce7d0ce 100644 --- a/Logtalk/xml/pdf.bat +++ b/Logtalk/xml/pdf.bat @@ -1,6 +1,6 @@ @ECHO off -SET FOP_PATH=c:\Fop-0.20.4 +SET FOP_PATH=c:\Fop-0.20.5 SET XSLT="lgtpdfa4.xsl" diff --git a/Logtalk/xml/pdf.sh b/Logtalk/xml/pdf.sh index dee113939..27a4b9c9a 100644 --- a/Logtalk/xml/pdf.sh +++ b/Logtalk/xml/pdf.sh @@ -1,8 +1,10 @@ #!/bin/sh -FOP_PATH="/Applications/fop-0.20.4" +FOP_PATH="/Applications/XML/fop-0.20.5" XSLT="lgtpdfa4.xsl" +# XSLT="lgtpdfus.xsl" + echo echo This script converts all .xml files in the current directory to .pdf diff --git a/Logtalk/xml/texml.xsl b/Logtalk/xml/texml.xsl index 3117c1c42..c60898155 100644 --- a/Logtalk/xml/texml.xsl +++ b/Logtalk/xml/texml.xsl @@ -12,7 +12,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/library/logtalk/logtalk.pl b/library/logtalk/logtalk.pl index 3ef8eae6a..0aa34704b 100644 --- a/library/logtalk/logtalk.pl +++ b/library/logtalk/logtalk.pl @@ -2,7 +2,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % @@ -24,7 +24,7 @@ :- op(600, xfy, ::). % send to object :- op(600, fy, ::). % send to self -:- op(600, fx, ^^). % super call +:- op(600, fy, ^^). % super call % mode operators @@ -1073,7 +1073,7 @@ current_logtalk_flag(Flag, Value) :- \+ '$lgt_flag_'(Flag, _), '$lgt_default_flag'(Flag, Value). -current_logtalk_flag(version, version(2, 15, 4)). +current_logtalk_flag(version, version(2, 15, 5)). diff --git a/library/logtalk/yap430.config b/library/logtalk/yap430.config index 39c0a4b17..30dd83140 100644 --- a/library/logtalk/yap430.config +++ b/library/logtalk/yap430.config @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.4 +% Release 2.15.5 % % configuration file for YAP Prolog 4.3.23 or later %