The YAP Prolog System

Vítor Santos Costa, Ricardo Rocha and Luís Damas



Yet Another Prolog (YAP) is a Prolog system originally developed in the mid-eighties and that has been under almost constant development since then. This paper presents the general structure and design of the YAP system, focusing on three important contributions to the Logic Programming community. First, it describes the main techniques used in YAP to achieve an efficient Prolog engine. Second, most Logic Programming systems have a rather limited indexing algorithm. YAP contributes to this area by providing a dynamic indexing mechanism, or just-in-time indexer (JITI). Third, a important contribution of the YAP system has been the integration of both or-parallelism and tabling in a single Logic Programming system.


  author =    {V. Santos Costa and R. Rocha and L. Damas},
  title =     {{The YAP Prolog System}},
  journal =   {Journal of Theory and Practice of Logic Programming},
  pages =     {5--34},
  volume =    {12},
  number =    {1 \& 2},
  year =      {2012},

Download Paper

PDF file
Cambridge University Press
Computing Research Repository (CoRR)