Programowanie z ograniczeniami to forma programowania deklaratywnego, która wykorzystuje ograniczenia matematyczne do definiowania, w jaki sposób zmienne w programie są ze sobą powiązane. Te typy technik programowania zazwyczaj współdziałają z innymi rodzajami technik programowania, takimi jak techniki logiczne i imperatywne. Te logiczne i imperatywne techniki robią dokładnie to, czego unika programowanie z ograniczeniami, logicznie przechodząc przez instrukcje obliczeniowe i wykonując zmiany. Programowanie z ograniczeniami jest często łączone z programowaniem logicznym, tworząc programowanie w logice z ograniczeniami, które jest rozszerzoną wersją programowania logicznego. Programowanie logiczne obejmuje wymagania dosłowne i porównania zmiennych, a programowanie w logice z ograniczeniami rozszerza to o ograniczenia.
Ograniczenie to zaawansowany termin matematyczny, ale zasadniczo jest to warunek, który musi zostać spełniony przy podejmowaniu decyzji. Jest to uproszczona definicja, a paradygmat programowania najlepiej zrozumieć, gdy użytkownik ma solidną znajomość matematyki. Patrząc na ograniczenia w odniesieniu do programowania z ograniczeniami, ograniczenia określają, w jaki sposób zmienne w programie muszą być ze sobą powiązane.
Programowanie deklaratywne to paradygmat programowania, który nie obejmuje dyktowania, w jaki sposób jest wykonywany lub wykonywany każdy pojedynczy krok programu. Zamiast koncentrować się na krokach, te typy języków określają lub deklarują relacje obliczeniowe. Programowanie z ograniczeniami jest rodzajem programowania deklaratywnego, ponieważ logika jest wyrażana i wyjaśniana, a nie systematycznie wykonywana po jednym kroku.
W programowaniu komputerowym zmienne mają definicję, która może się nieco różnić od ich definicji matematycznej. Zmienna może oznaczać cokolwiek, chyba że program komputerowy określił jej znaczenie. Na pierwszy rzut oka, gdy mówi się, że programowanie z ograniczeniami wykorzystuje ograniczenia do określenia, w jaki sposób zmienne muszą się ze sobą odnosić, może się wydawać, że to nie wystarczy do napisania całego programu komputerowego. W rzeczywistości, ponieważ zmienne programowania komputerowego mogą obejmować nieograniczoną ilość danych, określenie specyfiki ich wzajemnego powiązania ma bardzo wysoki poziom mocy programistycznej.
Programowanie z ograniczeniami jest paradygmatem programowania, co oznacza, że określa podstawowe idee dotyczące znaczenia podstawowych rzeczy, które mogą być radykalnie różne w porównaniu z innymi paradygmatami programowania. Różne paradygmaty mogą zrobić praktycznie wszystko w inny sposób niż inny język. Jeden język może używać logiki sekwencyjnej, a inny nie. Różne paradygmaty często używają różnych podstawowych bloków informacji i relacji do reprezentowania instrukcji. Wiele rzeczy, które są fundamentalne dla innych paradygmatów programowania, takich jak logiczne wykonywanie wielu wierszy po kolei, nie jest używanych w programowaniu z ograniczeniami.