MiniZinc is a medium-level constraint modelling language. It is high-level enough to express most constraint 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.
MiniZinc can target a large range of target solvers, which accept their own variant of the FlatZinc modelling language.
MiniZinc can be downloaded from the MiniZinc website.