constraint-based [adjective] + programming [noun]