The Functional Perspective on Advanced Logic Programming

Author Alexander Vandenbroucke

Thumbnail PDF


  • Filesize: 364 kB
  • 8 pages

Document Identifiers

Author Details

Alexander Vandenbroucke

Cite AsGet BibTex

Alexander Vandenbroucke. The Functional Perspective on Advanced Logic Programming. In Technical Communications of the 32nd International Conference on Logic Programming (ICLP 2016). Open Access Series in Informatics (OASIcs), Volume 52, pp. 20:1-20:8, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2016)


The basics of logic programming, as embodied by Prolog, are generally well-known in the programming language community. However, more advanced techniques, such as tabling, answer subsumption and probabilistic logic programming fail to attract the attention of a larger audience. The cause for the community's seemingly limited interest lies with the presentation of these features: the literature frequently focuses on implementations and examples that do little to aid the understanding of non-experts in the field. The key point is that many of these advanced logic programming features can be characterised in more generally known, more accessible terms. In my research I try to reconcile these advanced concepts from logic programming (Tabling, Answer subsumption and probabilistic programming) with concepts from functional programming (effects, monads and applicative functors).
  • Tabling
  • Answer Subsumption
  • Effect Handlers
  • Functional Programming
  • Logic Programming
  • Probabilistic Programming


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Samson Abramsky and Chris Hankin. Abstract Interpretation of declarative languages, volume 1, chapter An introduction to abstract interpretation, pages 63-102. 1987. Google Scholar
  2. Luc De Raedt, Angelika Kimmig, and Hannu Toivonen. ProbLog: A probabilistic prolog and its application in link discovery. In IJCAI, volume 7, pages 2462-2467, 2007. Google Scholar
  3. Benoit Desouter, Marko van Dooren, and Tom Schrijvers. Tabling as a library with delimited control. TPLP, 15(4-5):419-433, 2015. URL:
  4. Jeremy Gibbons and Ralf Hinze. Just do it: simple monadic equational reasoning. In ICFP, pages 2-14. ACM, 2011. Google Scholar
  5. Noah D. Goodman, Vikash K. Mansinghka, Daniel M. Roy, Keith Bonawitz, and Joshua B. Tenenbaum. Church: a language for generative models. In UAI, pages 220-229. AUAI Press, 2008. Google Scholar
  6. Hai-Feng Guo and Gopal Gupta. Simplifying dynamic programming via tabling. In PADL, volume 3057 of LNCS, pages 163-177. Springer, 2004. Google Scholar
  7. Oleg Kiselyov, Amr Sabry, and Cameron Swords. Extensible effects: an alternative to monad transformers. In Haskell, pages 59-70. ACM, 2013. Google Scholar
  8. Marta Kwiatkowska, Gethin Norman, and David Parker. PRISM 4.0: Verification of probabilistic real-time systems. In CAV, volume 6806, pages 585-591. Springer, 2011. Google Scholar
  9. Conor McBride and Ross Paterson. Applicative programming with effects. JFP, 18(1):1-13, 2008. Google Scholar
  10. Andrew McCallum, Karl Schultz, and Sameer Singh. FACTORIE: probabilistic programming via imperatively defined factor graphs. In NIPS, pages 1249-1257. Curran Associates, Inc., 2009. Google Scholar
  11. Microsoft Research. Infer.NET. URL:
  12. Eugenio Moggi. Notions of computation and monads. Information and computation, 93(1):55-92, 1991. Google Scholar
  13. Avi Pfeffer. Figaro: An object-oriented probabilistic programming language. Charles River Analytics Technical Report, 137, 2009. Google Scholar
  14. Norman Ramsey and Avi Pfeffer. Stochastic lambda calculus and monads of probability distributions. In POPL, pages 154-165. ACM, 2002. Google Scholar
  15. Amr Hany Saleh. Transforming delimited control: Achieving faster effect handlers. In ICLP (Technical Communications), volume 1433 of CEUR Workshop Proceedings., 2015. Google Scholar
  16. Vítor Santos Costa, Ricardo Rocha, and Luís Damas. The YAP Prolog system. TPLP, 12(1-2):5-34, 2012. Google Scholar
  17. Adam Ścibior, Zoubin Ghahramani, and Andrew D Gordon. Practical probabilistic programming with monads. In Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pages 165-176. ACM, 2015. Google Scholar
  18. Terrance Swift and David S. Warren. Tabling with answer subsumption: Implementation, applications and performance. In LAI, volume 6341 of LNCS, pages 300-312. Springer, 2010. Google Scholar
  19. Terrance Swift and David S. Warren. XSB: Extending Prolog with tabled logic programming. TPLP, 12(1-2):157-187, January 2012. Google Scholar
  20. Alexander Vandenbroucke, Maciej Piróg, Benoit Desouter, and Tom Schrijvers. Tabling with sound answer subsumption. arXiv preprint arXiv:1608.00787, 2016. Google Scholar
  21. Alexander Vandenbroucke, Tom Schrijvers, and Frank Piessens. Fixing non-determinism. In IFL 2015: Symposium on the implementation and application of functional programming languages Proceedings. Association for Computing Machinery, 2016. Google Scholar
  22. Philip Wadler. Monads for functional programming. In Advanced Functional Programming, volume 925 of Lecture Notes in Computer Science, pages 24-52. Springer, 1995. Google Scholar
  23. David S. Warren. Programming in Tabled Prolog, 1999. URL:
  24. Jan Wielemaker, S Ss, and I Ii. Swi-prolog 2.7-reference manual, 1996. Google Scholar
  25. Frank Wood, Jan Willem van de Meent, and Vikash Mansinghka. A new approach to probabilistic programming inference. In Proceedings of the 17th International conference on Artificial Intelligence and Statistics, pages 1024-1032, 2014. Google Scholar
  26. Neng-Fa Zhou. The language features and architecture of B-Prolog. TPLP, 12(1-2):189-218, 2012. Google Scholar
Questions / Remarks / Feedback

Feedback for Dagstuhl Publishing

Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail