O que é programação de restrições?
A programação de restrições é uma forma de programação declarativa que usa restrições matemáticas para definir como as variáveis no programa se relacionam. Esses tipos de técnicas de programação geralmente interagem com outros tipos de técnicas de programação, como técnicas lógicas e imperativas. Essas técnicas lógicas e imperativas fazem exatamente o que a programação de restrições evita, progredindo logicamente através de instruções computacionais e executando alterações. A programação de restrições geralmente é combinada com a programação lógica para formar a programação lógica de restrição, que é uma versão estendida da programação lógica. A programação lógica inclui requisitos literais e comparações de variáveis, e a programação lógica de restrição estende isso para incluir restrições.
Restrição é um termo matemático avançado, mas é essencialmente uma condição que deve ser satisfeita ao tomar uma decisão. Essa é uma definição simplista, e o paradigma de programação é melhor compreendido quando um usuário tem uma sólida compreensão da matemática. Ao examinar as restrições relacionadas à programação de restrições, as restrições mapeiam como as variáveis no programa devem se relacionar.
A programação declarativa é um paradigma de programação que não envolve ditar como cada etapa individual de um programa é executada ou executada. Em vez de focar nas etapas, esses tipos de idiomas especificam ou declaram relacionamentos computacionais. A programação de restrições é um tipo de programação declarativa porque a lógica é expressa e explicada, em vez de ser executada sistematicamente uma etapa de cada vez.
Na programação de computadores, as variáveis têm uma definição que pode ser um pouco diferente de sua definição matemática. Uma variável pode significar qualquer coisa, a menos que um programa de computador tenha definido seu significado. À primeira vista, quando se diz que a programação de restrições usa restrições para definir como as variáveis devem se relacionar, pode parecer que isso não é suficiente para escrever um programa de computador inteiro. Na realidade, como as variáveis de programação de computador podem abranger uma quantidade ilimitada de dados, a definição específica de como elas devem se relacionar possui um nível muito alto de poder de programação.
A programação de restrições é um paradigma de programação, o que significa que declara idéias fundamentais sobre o que significam coisas básicas que podem ser radicalmente diferentes em comparação com outros paradigmas de programação. Diferentes paradigmas podem fazer praticamente qualquer coisa de uma maneira diferente de outra língua. Um idioma pode usar lógica seqüencial, enquanto outro não. Diferentes paradigmas costumam usar diferentes blocos básicos de informações e relacionamentos para representar instruções. Muitas coisas que são fundamentais para outros paradigmas de programação, como executar logicamente muitas linhas em sucessão, não são usadas na programação de restrições.