Abstract
The HAL language includes a Herbrand constraint solver which uses Taylor’s PARMA scheme rather than the standard WAM representation. This allows HAL to generate more efficient Mercury code. Unfortunately, PARMA’s variable representation requires value trailing with a trail stack consumption about twice as large as for the WAM. We present a trailing analysis aimed at determining which Herbrand variables do not need to be trailed. The accuracy of the analysis comes from HAL’s semi-optional determinism and mode declarations. The analysis has been partially integrated in the HAL compiler and benchmark programs show good speed-up.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
H. Aït-Kaci. Warren’s Abstract Machine: A Tutorial Reconstruction. MIT Press, 1991.
B. Demoen, M. García de la Banda, W. Harvey, K. Marriott, and P. J. Stuckey. Herbrand Constraint Solving in HAL. In International Conference on Logic Programming, pages 260–274, 1999.
B. Demoen, M. García de la Banda, W. Harvey, K. Marriott, and P. J. Stuckey. An Overview of HAL. In Principles and Practice of Constraint Programming, pages 174–188, 1999.
S. Debray. A Simple Code Improvement Scheme for Prolog. Journal of Logic Programming, 13(1):349–366, May 1992.
M. García de la Banda, K. Marriott, P. Stuckey, and H. Søndergaard. Differential methods in logic program analysis. JLP, 35:1–37, 1998.
P. Van Hentenryck, A. Cortesi, and B. Le Charlier. Type analysis of Prolog using type graphs. JLP, 22:179–209, 1995.
G. Janssens and M. Bruynooghe. Deriving descriptions of possible value of program variables by means of abstract interpretation. JLP, 13:205–258, 1993.
A. Mulkers, W. Winsborough, and M. Bruynooghe. Live-structure dataflow analysis for prolog. ACM TOPLAS, 16:205–258, 1994.
N. Nethercote. The Analysis Framework of HAL. Master’s thesis, University of Melbourne, September 2001.
J. Noyé. Elagage de contexte, retour arrière superficiel, modifications réversibles et autres: une étude approfondie de la WAM. PhD thesis, Université de Rennes I, November 1994.
P. Van Roy and A. Despain. High-performance logic programming with the aquarius prolog compiler. IEEE Computer, 25(1):54–68, 1992.
T. Schrijvers and B. Demoen. Combining an Improvement to PARMA Trailing with Analysis in HAL. Technical Report 338, K.U.Leuven, April 2002.
Z. Somogyi, F. Henderson, and T. Conway. Mercury: an efficient purely declarative logic programming language. In Australian Computer Science Conference, pages 499–512, February 1995.
H. Søndergaard. An application of abstract interpretation of logic programs: occur check reduction. In European Symposium on Programming, LNCS 123, pages 327–338. Springer-Verlag, 1986.
A. Taylor. High Performace Prolog Implementation. PhD thesis, Basser Department of Computer Science, June 1991.
A. Taylor. Parma-Bridging the Performance GAP Between Imperative and Logic Programming. Journal of Logic Programming, 29(1–3):5–16, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Schrijvers, T., de la Banda, M.G., Demoen, B. (2002). Trailing Analysis for HAL. In: Stuckey, P.J. (eds) Logic Programming. ICLP 2002. Lecture Notes in Computer Science, vol 2401. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45619-8_4
Download citation
DOI: https://doi.org/10.1007/3-540-45619-8_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43930-1
Online ISBN: 978-3-540-45619-3
eBook Packages: Springer Book Archive