On Compiling Linear Logic Programs with Comprehensions, Aggregates and Rule Priorities

Flávio Cruz and Ricardo Rocha

June 2015


Abstract

Linear logic programs are challenging to implement efficiently because facts are asserted and retracted frequently. Implementation is made more difficult with the introduction of useful features such as rule priorities, which are used to specify the order of rule inference, and comprehensions or aggregates, which are mechanisms that make data iteration and gathering more intuitive. In this paper, we describe a compilation scheme for transforming linear logic programs enhanced with those features into efficient C++ code. Our experimental results show that compiled logic programs are less than one order of magnitude slower than hand-written C programs and much faster than interpreted languages such as Python.

Bibtex

@InProceedings{cruz-padl15,
  author =    {F. Cruz and R. Rocha},
  title =     {{On Compiling Linear Logic Programs with Comprehensions, 
                Aggregates and Rule Priorities}},
  booktitle = {Proceedings of the 17th International Symposium on Practical Aspects of Declarative
               Languages (PADL 2015)},
  pages =     {34--49},
  number =    {9131},
  series =    {LNCS},
  publisher = {Springer},
  editor =    {E. Pontelli and Son Cao Tran},
  month =     {June},
  year =      {2015},
  address =   {Portland, Oregon, USA},
}

Download Paper

PDF file
Springer