Projekt: Rule Based and Constraint Programming

Topic: Implementing FreeCHR

Constraint Handling Rules (CHR) is a declarative programming language, which was originally developed for the implementation of constraint solvers (i.e. programs, which simplify and process information in form of logical propositions). CHR is, though, not a stand-alone language, but will be embedded into another programming language, most famously Prolog, but there are implementations for Java, C or Haskell as well. Having a CHR implementation, one can easily use Constraint Programming for solving a host of problems most elegantly.

FreeCHR is framework, which formalizes the implementation of CHR for arbitrary host languages and provides an easy to implement structure.

In this project, we want to implement FreeCHR in a programming language of your choice.

Goals
  • Experiences in the design of programming languages and (E)DSLs
  • As the final result: FreeCHR as a tool for everyday programming
Prerequesites
  • Good programming skills in a programming language of your choice
  • Interest in declarative programming languages
References