To Read:

  • Sterling and Shapiro (Sterling & Shapiro, 1986) is often recommended as the introductory text to Logic Programming.
  • Nominal Logical Programming (Cheney & Urban, 2008) — is an extension of first-order logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, alpha-equivalence). “powerful tool for informal reasoning about theoretical computer science. For me it made theoretical computer science tangible, and I hope these series of posts can do the same for the reader.” — swannodette
  • miniKanren — is an embedded Domain Specific Language for logic programming. See also: Will Byrd’s Thesis — Relational Programming in miniKanren: Techniques, applications and implementations (Byrd, 2010).
  • For real world applications of logic programming see — Concepts, Techniques, and Models of Computer Programming by Roy, Haridi and Seif (Van Roy & Haridi, 2004).

Software

  • logic-db is a js lib to combine logic programming and database

Misc

Byrd, W. E. (2010). Relational Programming in Minikanren: Techniques, Applications, and Implementations [Phdthesis]. Indiana University.
Cheney, J., & Urban, C. (2008). Nominal Logic Programming. ACM Transactions on Programming Languages and Systems (TOPLAS), 30(5), 1–47.
Sterling, L., & Shapiro, E. (1986). The Art of Prolog: Advanced Programming Techniques. MIT Press.
Van Roy, P., & Haridi, S. (2004). Concepts, Techniques, and Models of Computer Programming. MIT press.