# Logic Programming

- Page: https://shared.btbytes.com/p/logic-programming
- Date: 2018-12-23
- Tags: programming-language

To Read:

-   Sterling and Shapiro (Sterling and Shapiro 1986) is often recommended
    as the introductory text to Logic Programming.
-   Nominal Logical Programming (Cheney and 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](http://web.archive.org/web/20130612145114/http://swannodette.github.io/nominal%20logic/2013/02/08/the-simply-typed-lambda-calculus-in-20-lines-redux)
-   [miniKanren](http://minikanren.org/) -- 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 and Haridi 2004).


## Software

- [logic-db](https://logic-db.surge.sh/#features) is a js lib to combine logic programming and database

## Misc

-   [Datalog 2.0 workshop](http://www.datalog20.org/programme.html)
    --for Datalog pioneers, implementors, and current practitioners.

## References

- Sterling, Shapiro (1986). The Art of Prolog: Advanced Programming Techniques.
- Cheney, Urban (2008). Nominal Logic Programming.
- Byrd (2010). Relational Programming in Minikanren: Techniques, Applications, and Implementations.
- Van Roy, Haridi (2004). Concepts, Techniques, and Models of Computer Programming.
