Projekt: Regelbasierte und Constraint-Programmierung

Thema: Implementierung von FreeCHR

Constraint Handling Rules (CHR) ist eine deklarative Programmiersprache, die ursprünglich für die Implementierung von Constraint Solvern (das sind Programme, die Informationen in Form von logischen Aussagen vereinfachen und verarbeiten) entwickelt wurde. CHR ist dabei keine eigenständige Programmiersprache, sondern wird immer in eine andere Sprache eingebettet. Das bekannteste Beispiel dafür ist Prolog, wobei es CHR auch für Java, C oder Haskell gibt. Mit einer CHR-Implemtierung für eine Sprache, lässt sich mit dieser sehr leicht Constraint Programmierung betreiben, und damit viele Probleme auf elegantestem Wege lösen.

FreeCHR ist ein Framework, dass die Implementierung von CHR als eingebettete Sprache für beliebige Hostsprachen formalisiert und eine leicht zu implementierende Struktur definiert.

Im Rahmen dieses Projekts soll daher FreeCHR für eine beliebige Hostsprache implementiert werden.

Ziele

  • Erfahrungen in Implementierung und Design eingebetterer Programmiersprachen
  • Als fertiges Artefakt: CHR als nützliches Werkzeug für den Programmieralltag

Voraussetzungen

  • Gute Programmierkenntnisse in einer Programmiersprache
  • Interesse an deklarativen Programmiersprachen

Literatur