So Many WAM Variations, So Little Time

  • Bart Demoen
  • Phuong-Lan Nguyen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1861)


The WAM allows within its framework many variations e.g. regarding the term representation, the instruction set and the memory organization. Consequently several Prolog systems have implemented successful variants of the WAM. While these variants are effective within their own context, it is difficult to assess the merit of their particular variation. In this work, four term representations that were used by at least one successful system are compared empirically within dProlog, one basic implementation which keeps all other things equal. We also report on different implementation choices in the dProlog emulator itself. dProlog is reasonably efficient, so it makes sense to use it for these experiments.


Logic Program Garbage Collection Code Size Permanent Variable Register Allocation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    H. Aït-Kaci. Warren’s Abstract Machine: A Tutorial Reconstruction. The MIT Press, Cambridge, Massachusetts, 1991.Google Scholar
  2. 2.
    M. Carlsson. Freeze, Indexing and Other Implementation Issues in the WAM. Proceedings of the 4th International Conference on Logic Programming, Melbourne, 1987, pp 40–58Google Scholar
  3. 3.
    M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990.Google Scholar
  4. 4.
    V. S. Costa, Optimising Bytecode Emulation for Prolog. Proceedings of PPDP’99, LNCS 1702, Springer-Verlag, 261–277, September, 1999.Google Scholar
  5. 5.
    B. Demoen, M. Garcýa de la Banda, W. Harvey, K. Marriott, and P. Stuckey. Herbrand Constraint Solving in HAL. Proceedings of the International Conference on Logic Programming 1999, Las Cruces, New Mexico, ed. D. De Schreye, MIT Press, pp. 260–274Google Scholar
  6. 6.
    B. Demoen, G. Janssens, H. Vandecasteele. Executing Query Flocks for ILP. Proceedings of BENELOG’99, Maastricht, 5 November 1999Google Scholar
  7. 7.
    B. Demoen, K. Sagonas. Heap Garbage Collection in XSB: Practice and Experience Proceedings of the Second Int. Workshop on Practical Aspects of Declarative Languages, Boston, Jan. 2000, pp. 93–108Google Scholar
  8. 8.
    G. Janssens, B. Demoen, A. Mariën. Improving the register allocation in WAM by reordering unification. Int. Conference & Symposium on Logic Programming, Seattle, Washington aug 1988, pp. 1388–1402Google Scholar
  9. 9.
    A. Mariën, B. Demoen. On the management of E and B in WAM. Proceedings of the North American Conference on Logic Programming, Cleveland, Ohio, oct 1989, pp. 1030–1047Google Scholar
  10. 10.
    Phuong-Lan Nguyen. Optimisation du Code produit par un Compilateur Prolog. Rapport de DEA, ENSIMAG, Laboratoire de Génie Informatique, Grenoble, 1988Google Scholar
  11. 11.
    T. Lindgren, P. Mildner, and J. Bevemyr. On Taylor’s scheme for unbound variables. Technical report, UPMAIL, October 1995.Google Scholar
  12. 12.
    P. Tarau. Program Transformations and WAM-support for the Compilation of Definite Metaprograms. In A. Voronkov, editor, Logic Programming, RCLP Proceedings, number 592 in Lecture Notes in Artificial Intelligence, pages 462–473, Berlin, Heidelberg, 1992. Springer-Verlag.Google Scholar
  13. 13.
    P. Tarau and U. Neumerkel. A Novel Term Compression Scheme and Data Representation in the BinWAM. Proceedings of Programming Language Implementation and Logic Programming, sept. 1994, Springer, LNCS 844, pp. 73–87Google Scholar
  14. 14.
    A. Taylor. PARMA-bridging the performance gap between imperative and logic programming. Journal of Logic Programming, 29(1–3), 1996.Google Scholar
  15. 15.
    P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming? Report 90/600, UCB/CSD, Berkeley, California 94720, Dec 1990.Google Scholar
  16. 16.
    D. H. D. Warren. An Abstract Prolog Instruction Set. Technical Report 309, SRI International, Menlo Park, U.S.A., Oct. 1983.Google Scholar
  17. 17.

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Bart Demoen
    • 1
  • Phuong-Lan Nguyen
    • 2
  1. 1.Department of Computer ScienceK.U. LeuvenLeuvenBelgium
  2. 2.Institut de Mathematiques AppliquéesUniversité Catholique de l’OuestAngersFrance

Personalised recommendations