TY - GEN
T1 - Suspending and resuming computations in engines for SLG evaluation
AU - Castro, Luís F.
AU - Swift, Terrance
AU - Warren, David S.
N1 - Publisher Copyright:
© Springer-Verlag Berlin Heidelberg 2002.
PY - 2002
Y1 - 2002
N2 - SLD resolution, the evaluation mechanism for Prolog programs, is modeled as a sequence of SLD trees. Since only one branch of an SLD tree needs to be active at any time, SLD can be implemented via engines whose memory management is stack-based, as the WAM. Tabling, and more specifically SLG resolution, is modeled as a sequence of forests of trees in which several computation paths may need to be active at any time. This reflects the fact that a computation path that consumes answers may need to be suspended and resumed multiple times as answers are derived. The SLGWAM architecture defines instructions to implement SLG resolution. Implementations of the SLGWAM architecture have so far shown a great deal of similarity in table access methods, high-level scheduling strategies, and support for incremental completion. However they have made different choices in what may be termed environment management: how to store suspended environments and how to check whether these environments need to be resumed. This paper describes the environment management techniques of different implementations of the SLGWAM architecture and analyzes their performance.
AB - SLD resolution, the evaluation mechanism for Prolog programs, is modeled as a sequence of SLD trees. Since only one branch of an SLD tree needs to be active at any time, SLD can be implemented via engines whose memory management is stack-based, as the WAM. Tabling, and more specifically SLG resolution, is modeled as a sequence of forests of trees in which several computation paths may need to be active at any time. This reflects the fact that a computation path that consumes answers may need to be suspended and resumed multiple times as answers are derived. The SLGWAM architecture defines instructions to implement SLG resolution. Implementations of the SLGWAM architecture have so far shown a great deal of similarity in table access methods, high-level scheduling strategies, and support for incremental completion. However they have made different choices in what may be termed environment management: how to store suspended environments and how to check whether these environments need to be resumed. This paper describes the environment management techniques of different implementations of the SLGWAM architecture and analyzes their performance.
UR - http://www.scopus.com/inward/record.url?scp=61649121806&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=61649121806&partnerID=8YFLogxK
U2 - 10.1007/3-540-45587-6_21
DO - 10.1007/3-540-45587-6_21
M3 - Conference contribution
AN - SCOPUS:61649121806
SN - 354043092X
SN - 9783540430926
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 332
EP - 349
BT - Practical Aspects of Declarative Languages - 4th International Symposium, PADL 2002, Proceedings
A2 - Krishnamurthi, Shriram
A2 - Ramakrishnan, C.R.
PB - Springer Verlag
T2 - 4th International Symposium on Practical Applications of Declarative Languages, PADL 2002
Y2 - 19 January 2002 through 20 January 2002
ER -