Results 1 -
8 of
8
CHAT: the Copy-Hybrid Approach to Tabling
- In Practical Aspects of Declarative Languages: First International Workshop
, 1999
"... The Copying Approach to Tabling, abbrv. CAT, is an alternative to SLG-WAM and based on incrementally copying the areas that the SLG-WAM freezes to preserve execution states of suspended computations. The main advantage of CAT over the SLG-WAM is that support for tabling does not affect the speed of ..."
Abstract
-
Cited by 28 (5 self)
- Add to MetaCart
The Copying Approach to Tabling, abbrv. CAT, is an alternative to SLG-WAM and based on incrementally copying the areas that the SLG-WAM freezes to preserve execution states of suspended computations. The main advantage of CAT over the SLG-WAM is that support for tabling does not affect the speed of the underlying abstract machine for strictly non-tabled execution. The disadvantage of CAT as pointed out in a previous paper is that in the worst case, CAT must copy so much that its tabled execution becomes arbitrarily worse than that of the SLG-WAM. Remedies to this problem have been studied, but a completely satisfactory solution has not emerged. Here, a hybrid approach is presented: abbrv. CHAT. Its design was guided by the requirement that for non-tabled (i.e. Prolog) execution no changes to the underlying WAM engine need to be made. CHAT combines certain features of the SLG-WAM with features of CAT, but also introduces a technique for freezing WAM stacks without the use of the SLG-WAM's freeze registers that is of independent interest. Empirical results indicate that CHAT is a better choice for implementing the control of tabling than SLG-WAM or CAT. However, programs with arbitrarily worse behaviour exist.
Heap Garbage Collection in XSB: Practice and Experience
- PROCEEDINGS OF THE SECOND INT. WORKSHOP ON PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES
, 2000
"... ..."
CHAT is Theta(SLG-WAM)
- In Proceedings of the 6th International Conference on Logic for Programming and Automated Reasoning
, 1999
"... . CHAT oers an alternative to SLG-WAM for implementing the suspension and resumption of consumers that tabling needs: unlike SLG-WAM, it does not use freeze registers nor a complicated trail to preserve their execution environments. CHAT also limits the amount of copying of CAT, which was previo ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
. CHAT oers an alternative to SLG-WAM for implementing the suspension and resumption of consumers that tabling needs: unlike SLG-WAM, it does not use freeze registers nor a complicated trail to preserve their execution environments. CHAT also limits the amount of copying of CAT, which was previously put forward as another alternative to SLG-WAM. Although experimental results show that in practice CHAT is competitive with | if not better than | SLG-WAM, there remains the annoying fact that on contrived programs the original CHAT can be made arbitrarily worse than SLG-WAM, i.e. the original CHAT has an intrinsically higher complexity. In this paper we show how to overcome this problem, in particular, we deal with the two sources of higher complexity of CHAT: the repeated traversal of the choice point stack, and the lack of sucient sharing of the trail. This is achieved without fundamentally changing the underlying principle of CHAT by a technique that manipulates a Prolog choice point so that it assumes temporarily a dierent functionality and in a way that is transparent to the underlying WAM. There is more potential use of this technique besides lowering the worst case complexity of CHAT: it leads to considering scheduling strategies that were not feasible before either in CHAT or in SLG-WAM. We also discuss extensively issues related to the implementation of the trail in a tabled logic programming system. 1
Prolog and Abduction 4 writing Garbage Collectors
- Department of Computer Science, University of Manchester, ISSN
, 2000
"... It seems silly and impractical to write a garbage collector (for a Prolog engine) in Prolog itself. But doing so has least three advantages: (1) one gets a runnable specification of the garbage collector, (2) it can enhance understanding of the algorithms involved without having to worry about point ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
It seems silly and impractical to write a garbage collector (for a Prolog engine) in Prolog itself. But doing so has least three advantages: (1) one gets a runnable specification of the garbage collector, (2) it can enhance understanding of the algorithms involved without having to worry about pointer details, (3) the garbage collector written in Prolog can be used for debugging its implementation in a lower level language. We show how a sliding collector can be specified in Prolog in a reasonably declarative way, how it can be executed best within a tabling environment, and how it was of use during the development of the heap garbage collectors of BinProlog, XSB and more recently ilProlog. We indicate how the Prolog implementation can reconstruct the classical Morris algorithm. We also specify the garbage collection process in an abductive formalism and speculate on how constraints on the abductive solver can retrieve well-known algorithms.
CAT: the Copying Approach to Tabling
- Principles of Declarative Programming, 10th International Symposium, PLILP'98, Held Jointly with the 6th International Conference, ALP'98, number 1490 in LNCS
, 1998
"... The SLG-WAM implements tabling by freezing the WAM stacks: this implementation technique has a reasonably small execution overhead, but is not easy to implement on top of an existing Prolog system. We here propose a new approach to the implementation of tabling: the Copying Approach to Tabling. C ..."
Abstract
- Add to MetaCart
The SLG-WAM implements tabling by freezing the WAM stacks: this implementation technique has a reasonably small execution overhead, but is not easy to implement on top of an existing Prolog system. We here propose a new approach to the implementation of tabling: the Copying Approach to Tabling. CAT interferes absolutely not with normal Prolog execution and can be introduced in an existing Prolog system orthogonally. We have implemented CAT starting from XSB (i.e. taking out SLG-WAM and adding CAT) and the results show that in practical programs CAT slightly outperforms the SLG-WAM. We give a detailed account of the additions to be made to a WAM implementation for adopting CAT. We show a case in which CAT performs arbitrarily worse than SLG-WAM, but on the other hand we present empirical evidence that CAT is competitive and often faster than SLG-WAM. We discuss issues related to memory management and the impact of the scheduling strategy. 1 Introduction Tabling in logic prog...
The XSB System Version 2.2 Volume 1: Programmer's Manual
, 2000
"... this document |intended to be the user manual| reects the current status (Version 2.2) of our system. While we have taken great eort to create a robust and ecient system, we would like to emphasize that XSB is also a research system and is to some degree experimental. When the research features of X ..."
Abstract
- Add to MetaCart
this document |intended to be the user manual| reects the current status (Version 2.2) of our system. While we have taken great eort to create a robust and ecient system, we would like to emphasize that XSB is also a research system and is to some degree experimental. When the research features of XSB | tabling, HiLog, and Indexing Techniques | are discussed in this manual, we also cite documents where they are fully explained. All of these documents can be found via the world-wide web or anonymous ftp from fwww/ftpg.cs.sunysb.edu, the same host from which XSB can be obtained.
A better CAT made-in-Belgium: CHAT (or KAT)
"... The Copying Approach to Tabling, abbrv. CAT, is an alternative to SLG-WAM and based on total copying of the areas that SLG-WAM freezes to preserve execution states of suspended computations. The disadvantage of CAT as pointed out in a previous paper is that in the worst case, CAT must copy so much t ..."
Abstract
- Add to MetaCart
The Copying Approach to Tabling, abbrv. CAT, is an alternative to SLG-WAM and based on total copying of the areas that SLG-WAM freezes to preserve execution states of suspended computations. The disadvantage of CAT as pointed out in a previous paper is that in the worst case, CAT must copy so much that it becomes arbitrarily worse than SLG-WAM. Remedies to this problem have been studied, but a completely satisfactory solution has not emerged. Here, a hybrid approach is presented: CHAT. Its design was guided by the requirement that for non-tabled (i.e. Prolog) execution no changes to the underlying WAM engine need to be made. CHAT combines certain features of the SLG-WAM with features of CAT, but also introduces a technique for freezing WAM stacks without the use of the SLG-WAM's freeze registers that is of independent interest. Empirical results indicate that CHAT is a better choice for implementing the control of tabling than SLG-WAM or CAT. However, programs with arbitrari...

