Logic Programming Project

The following ideas may be used for inspiration:

Implement a Complex Domain (e.g. rules for a board game, card game, or tax code)

  • As a logic program using Datalog
  • As a logic program using Flix
  • As a logic program using Prolog

Implement a Logic Programming Language

  • Implement a Datalog engine (e.g. using semi-naive evaluation)
  • Implement a Prolog engine (e.g. using SLD resolution)
  • Implement a third logic programming language (e.g. ASP)

Learn Another Logic Programming Language

  • Explore CodeQL and use it for some program analysis.
  • Explore Datafun and use it solve some programming problems
  • Explore FormuLog and use it solve some programming problems
  • Explore Mercury and use it solve some programming problems
  • Explore miniKanren and use it solve some programming problems

Extend the Datalog Solver in Flix

  • Enrich its semantics with new features
  • Improve its performance and/or scalability
  • Improve its ergonomics (e.g. VSCode support)