MiniZinc is a medium-level modelling language. It is high-level enough to express most CP problems easily, but low-level enough that it can be mapped onto existing solvers easily and consistently. It is a subset of the higher-level language Zinc. We hope it will be adapted as a standard by the CP community.
FlatZinc is a low-level solver input language that is the target language for MiniZinc. It is designed to be easy to translate into the form required by a CP solver.
This page holds various MiniZinc and FlatZinc resources that are of wide interest.
MiniZinc: Towards A Standard CP Modelling Language. Paper about MiniZinc, FlatZinc, and the mapping between them.
Converting MiniZinc to FlatZinc. The official specification for the MiniZinc-to-FlatZinc conversion. Has some overlap with the relevant section in the MiniZinc paper, but is more detailed, especially on how built-ins are translated.
FlatZinc lex/yacc grammar. Includes a Makefile. This code is in the public domain, and so can be used by anyone to create a FlatZinc front-end for their solver.