programming [noun] + constraint-based [adjective]