Rajoitusohjelmointi on deklaratiivisen ohjelmoinnin muoto, joka käyttää matemaattisia rajoituksia määritelläkseen, kuinka ohjelman muuttujat liittyvät toisiinsa. Tämäntyyppiset ohjelmointitekniikat ovat tyypillisesti vuorovaikutuksessa muun tyyppisten ohjelmointitekniikoiden, kuten loogisten ja pakollisten tekniikoiden kanssa. Nämä loogiset ja pakottavat tekniikat tekevät juuri sitä, mitä rajoitusten ohjelmointi välttää, etenevät loogisesti laskennallisten lausuntojen kautta ja suorittavat muutoksia. Rajoitusohjelmointi yhdistetään usein logiikkaohjelmointiin, jolloin muodostuu rajoituslooginen ohjelmointi, joka on laajennettu versio logiikkaohjelmoinnista. Looginen ohjelmointi sisältää kirjaimellisia vaatimuksia ja muuttujien vertailuja, ja rajoituslooginen ohjelmointi laajentaa tämän sisältämään rajoituksia.
Rajoitus on kehittynyt matemaattinen termi, mutta se on olennaisesti ehto, joka on täytettävä päätöstä tehtäessä. Tämä on yksinkertaistettu määritelmä, ja ohjelmointiparadigma ymmärretään parhaiten, kun käyttäjä ymmärtää vankan matematiikan. Kun tarkastellaan rajoituksia, jotka liittyvät rajoitusten ohjelmointiin, rajoitukset kartoittavat, kuinka ohjelman muuttujien on oltava yhteydessä toisiinsa.
Deklaratiivinen ohjelmointi on ohjelmointimalli, joka ei sisällä sanelua siitä, miten ohjelman jokainen yksittäinen vaihe suoritetaan tai suoritetaan. Tämän tyyppiset kielet sen sijaan, että keskittyisivät vaiheisiin, määrittävät tai ilmoittavat laskennallisia suhteita. Rajoitusohjelmointi on eräänlainen deklaratiivinen ohjelmointi, koska logiikka ilmaistaan ja selitetään sen sijaan, että se suoritettaisiin järjestelmällisesti vaihe kerrallaan.
Tietokoneohjelmoinnissa muuttujilla on määritelmä, joka voi olla hieman erilainen kuin niiden matemaattinen määritelmä. Muuttuja voi tarkoittaa mitä tahansa, ellei tietokoneohjelma ole määritellyt sen merkitystä. Ensi silmäyksellä, kun sanotaan, että rajoitusten ohjelmointi käyttää rajoituksia määritelläkseen, kuinka muuttujien on oltava yhteydessä toisiinsa, saattaa kuulostaa siltä, että tämä ei riitä koko tietokoneohjelman kirjoittamiseen. Todellisuudessa, koska tietokoneohjelmointimuuttujat voivat käsittää rajoittamattoman määrän dataa, niiden määrittämisessä toisiinsa nähden on erittäin korkea ohjelmointiteho.
Rajoitettu ohjelmointi on ohjelmointiparadigma, mikä tarkoittaa, että se esittää perusideoita siitä, mitä perusasiat tarkoittavat ja jotka voivat olla radikaalisti erilaisia verrattuna muihin ohjelmointimalleihin. Eri paradigmat voivat tehdä käytännössä mitä tahansa eri tavalla kuin toinen kieli. Yksi kieli voi käyttää peräkkäistä logiikkaa, kun taas toinen ei. Eri paradigmat käyttävät usein erilaisia perustietoja ja suhteita lohkojen esittämiseen. Rajoitetussa ohjelmoinnissa ei käytetä monia asioita, jotka ovat olennaisia muille ohjelmointimalleille, kuten useiden rivien looginen suorittaminen peräkkäin.