{Constraint Logic Programming: a Survey}