La programmation par contraintes est une forme de programmation déclarative qui utilise des contraintes mathématiques pour définir la façon dont les variables au sein du programme liés les uns aux autres. Ces types de techniques de programmation en général interagir avec d'autres types de techniques de programmation, tels que les techniques de logique et impératif. Ces techniques de logique et impératif de faire précisément ce que la programmation par contraintes permet d'éviter, en toute logique progressent à travers des déclarations de calcul et l'exécution des changements. La programmation par contraintes est souvent combinée avec la programmation logique pour former programmation logique avec contraintes, qui est une version étendue de la programmation logique. Programmation logique comprend des exigences littérales et les comparaisons de variables, et la programmation logique contrainte s'étend pour inclure cette contrainte.
Une contrainte est une expression mathématique complexe, mais il s'agit essentiellement d'une condition qui doit être satisfaite pour prendre une décision. Il s'agit d'une définition simpliste, et le paradigme de programmation est mieux compris quand un utilisateur a une solide connaissance des mathématiques. Lorsque l'on regarde les contraintes qui ont trait à la programmation par contraintes, les contraintes de cartographier comment les variables du programme doivent se rapporter les uns aux autres.
La programmation déclarative est un paradigme de programmation qui n'implique pas de dicter la manière dont chaque étape d'un programme est effectuée, ou exécuté. Au lieu de se concentrer sur les étapes, ces types de langages de préciser ou de déclarer les relations de calcul. La programmation par contraintes est un type de programmation déclarative parce que la logique est exprimé et expliqué, au lieu de systématiquement exécuté une étape à la fois.
En programmation, les variables ont une définition qui peut être un peu différent de leur définition mathématique. Une variable peut signifier n'importe quoi, sauf si un programme d'ordinateur a défini sa signification. À première vue, quand on dit que la programmation par contraintes utilise des contraintes de définir comment les variables doivent être liés les uns aux autres, il peut sembler que ce n'est pas assez pour écrire un programme informatique complet avec. En réalité, les variables en raison programmation informatique peut comprendre une quantité illimitée de données, la définition des détails de la façon dont ils doivent se rapporter à l'autre a un très haut niveau de puissance de programmation.
La programmation par contraintes est un paradigme de programmation, ce qui signifie qu'il déclare idées fondamentales sur ce que signifient les choses de base qui peut être radicalement différente par rapport aux autres paradigmes de programmation. Différents paradigmes peuvent faire pratiquement n'importe quoi d'une façon différente de celle d'une autre langue. Une langue peut utiliser la logique séquentielle, tandis qu'un autre ne peut pas. Différents paradigmes ont souvent recours à différents blocs de base d'information et de relations pour représenter les instructions. Beaucoup de choses qui sont fondamentales pour d'autres paradigmes de programmation, tels que logiquement l'exécution de nombreuses lignes de suite, ne sont pas utilisés en programmation par contraintes.