Programarea cu constrângeri

Programarea cu constrângeri (sau programarea cu constrângeri ) este o paradigmă de programare în care relațiile dintre variabile sunt specificate sub formă de constrângeri. Constrângerile diferă de primitivele comune ale limbajelor de programare imperative prin faptul că nu definesc o succesiune de pași de executat, ci proprietăți ale soluției căutate, făcând din această programare o formă de programare declarativă . Sunt posibile diferite tipuri de constrângeri: cele care sunt utilizate în problemele de satisfacție a constrângerilor (de exemplu, „A sau B este adevărat”), cele care sunt rezolvate prin algoritmul simplex (de exemplu, „ „) și altele. Constrângerile sunt de obicei integrate în limbajul de programare sau implementate prin biblioteci software separate .

Programarea cu constrângeri este strâns legată de teoria satisfacției constrângerilor , care oferă un aparat convenabil și o schemă formală simplă pentru reprezentarea și rezolvarea problemelor combinatorii de inteligență artificială . Printre problemele rezolvate de instrumentele de programare cu constrângeri se numără verificarea circuitelor electronice, programarea , programarea și multe probleme combinatorii.

Din punct de vedere istoric, prima formă este programarea logică constrânsă., bazat pe programare logică , a apărut în 1987 ca o clasă specifică de restricții pentru Prolog-II, primele implementări au fost Prolog III, CLP (R) și CHIP. Dintre interpreții moderni, programarea logică constrânsă este susținută în special de GNU Prolog .

Constrângerile pot fi, de asemenea, amestecate cu programarea funcțională , rescrierea termenilor și limbajul imperativ . Limbajele de programare cu suport încorporat pentru constrângeri sunt Oz (programare funcțională) și Kaleidoscope (programare imperativă). În mare parte, constrângerile sunt implementate în limbaje imperative prin instrumente de rezolvare a problemelor constrânse, care sunt biblioteci separate pentru limbajele imperative existente.

Literatură

Link -uri