Програмування в обмеженнях (або програмування обмеженнями) — парадигма програмування, у якій відношення між змінними зазначені у формі обмежень. Обмеження відрізняються від загальних примітивів мов імперативного програмування тим, що вони визначають не послідовність кроків для виконання, а властивості шуканого рішення. Це робить програмування в обмеженнях формою декларативного програмування. Обмеження, які використовуються в програмуванні в обмеженнях, бувають різних видів: ті, які використовуються в задачах задоволення умов (наприклад, «А або В істинно»), ті, які розв'язуються симплекс-алгоритмом (наприклад, «x ≤ 5») й інші. Обмеження, як правило, убудовані в мову програмування або здійснюються через окремі програмні бібліотеки.
Програмування в обмеженнях почалося із логічного програмування з обмеженнями, яке є вкладанням обмежень у логічне програмування. Поява цього варіанта логічного програмування пов'язана з іменами Jaffar і Lassez, які розширили в 1987 році певний клас обмежень, що були уведені в Prolog II. Першими реалізаціями логічного програмування в обмеженнях були Пролог III, CLP (R) і CHIP. Деякі інтерпретатори логічного програмування в обмеженнях існують і сьогодні, наприклад GNU Prolog.
Крім логічного програмування, обмеження можуть бути змішані з функціональним програмуванням, переписуванням термів та імперативною мовою. Мови програмування з убудованою підтримкою обмежень включають [en] (функціональне програмування) і Kaleidoscope (імперативне програмування). Головним чином, обмеження здійснюються в імперативних мовах через інструментальні засоби для розв'язування задач із обмеженнями, які є окремими бібліотеками для існуючих імперативних мов.
Логічне програмування в обмеженнях
Детальніші відомості з цієї теми ви можете знайти в статті [en].
Часові обмеження паралельного програмування (KTC) і недетерміновані часові обмеження паралельного програмування (NTCC) є варіантами програмування в обмеженнях, які можуть мати справу з часом.
Цей розділ потребує доповнення. (травень 2011) |
Деякі мови, що підтримують програмування в обмеженнях
- [en] невелика, строго типізована, мова обмежень з незначною кількістю функцій логічного програмування, що підтримують імперативне програмування.
- Common Lisp за допомогою — (вільна бібліотека програмного забезпечення, яке забезпечує відкіт і CLP(R), можливості CHiP).
Див. також
- Комбінаторна оптимізація
- Евристичний алгоритм
- Оптимізація (математика), (математичне програмування)
- Мова програмування п’ятого покоління
Посилання
- Інформація про щорічну конференцію CP (англ.)
- Онлайн керівництво з програмування в обмеженнях (англ.)
- ISSN 1526-551X (online) (Програма не дорівнює програмі: програмування в обмеженнях і його відношення до математичного програмування) (англ.)
- Mozart ([en]-базована, безкоштовне програмне забезпечення: X11 стиль) (англ.)
- Cork Constraint Computation Centre (4C) (англ.)
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Programuvannya v obmezhennyah abo programuvannya obmezhennyami paradigma programuvannya u yakij vidnoshennya mizh zminnimi zaznacheni u formi obmezhen Obmezhennya vidriznyayutsya vid zagalnih primitiviv mov imperativnogo programuvannya tim sho voni viznachayut ne poslidovnist krokiv dlya vikonannya a vlastivosti shukanogo rishennya Ce robit programuvannya v obmezhennyah formoyu deklarativnogo programuvannya Obmezhennya yaki vikoristovuyutsya v programuvanni v obmezhennyah buvayut riznih vidiv ti yaki vikoristovuyutsya v zadachah zadovolennya umov napriklad A abo V istinno ti yaki rozv yazuyutsya simpleks algoritmom napriklad x 5 j inshi Obmezhennya yak pravilo ubudovani v movu programuvannya abo zdijsnyuyutsya cherez okremi programni biblioteki Programuvannya v obmezhennyah pochalosya iz logichnogo programuvannya z obmezhennyami yake ye vkladannyam obmezhen u logichne programuvannya Poyava cogo varianta logichnogo programuvannya pov yazana z imenami Jaffar i Lassez yaki rozshirili v 1987 roci pevnij klas obmezhen sho buli uvedeni v Prolog II Pershimi realizaciyami logichnogo programuvannya v obmezhennyah buli Prolog III CLP R i CHIP Deyaki interpretatori logichnogo programuvannya v obmezhennyah isnuyut i sogodni napriklad GNU Prolog Krim logichnogo programuvannya obmezhennya mozhut buti zmishani z funkcionalnim programuvannyam perepisuvannyam termiv ta imperativnoyu movoyu Movi programuvannya z ubudovanoyu pidtrimkoyu obmezhen vklyuchayut en funkcionalne programuvannya i Kaleidoscope imperativne programuvannya Golovnim chinom obmezhennya zdijsnyuyutsya v imperativnih movah cherez instrumentalni zasobi dlya rozv yazuvannya zadach iz obmezhennyami yaki ye okremimi bibliotekami dlya isnuyuchih imperativnih mov Logichne programuvannya v obmezhennyahDetalnishi vidomosti z ciyeyi temi vi mozhete znajti v statti en Chasovi obmezhennya paralelnogo programuvannya KTC i nedeterminovani chasovi obmezhennya paralelnogo programuvannya NTCC ye variantami programuvannya v obmezhennyah yaki mozhut mati spravu z chasom Cej rozdil potrebuye dopovnennya traven 2011 Deyaki movi sho pidtrimuyut programuvannya v obmezhennyah en nevelika strogo tipizovana mova obmezhen z neznachnoyu kilkistyu funkcij logichnogo programuvannya sho pidtrimuyut imperativne programuvannya Common Lisp za dopomogoyu vilna biblioteka programnogo zabezpechennya yake zabezpechuye vidkit i CLP R mozhlivosti CHiP Div takozhKombinatorna optimizaciya Evristichnij algoritm Optimizaciya matematika matematichne programuvannya Mova programuvannya p yatogo pokolinnyaPosilannyaInformaciya pro shorichnu konferenciyu CP angl Onlajn kerivnictvo z programuvannya v obmezhennyah angl ISSN 1526 551X online Programa ne dorivnyuye programi programuvannya v obmezhennyah i jogo vidnoshennya do matematichnogo programuvannya angl Mozart en bazovana bezkoshtovne programne zabezpechennya X11 stil angl Cork Constraint Computation Centre 4C angl Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi