Декларативне програмування
Декларативне програмування — парадигма програмування, відповідно до якої, програма описує, який результат необхідно отримати, замість описання послідовності отримання цього результату.
Наприклад, вебсторінки HTML — декларативні, оскільки вони описують, що містить сторінка та що має відображатися — заголовок, шрифт, текст, зображення — але не містить інструкцій як її слід відображати.
Ця парадигма мов програмування відмінна від імперативних мов програмування, таких як, наприклад, Фортран, C і Java, які вимагають від розробника детального описання алгоритму отримання результатів.
Стисло кажучи, для отримання результатів імперативні програми явно конкретизують алгоритм, а декларативні — явно конкретизують мету і залишають реалізацію алгоритму на допоміжному програмному забезпеченню (наприклад, інструкція вибірки SQL конкретизує властивості даних, які слід отримати від бази даних, але не процес отримання цих даних).
Відповідно до іншого визначення, програма «декларативна», якщо її написано винятково функціональною мовою програмування, логічною мовою програмування, або мовою обмежень. Назва «Декларативна мова» іноді використовується, щоб згрупувати всі ці мови програмування та протиставити їх імперативним мовам програмування.
Ці два визначення частково перекриваються. Зокрема, програмування обмеженнями і, меншою мірою, логічне програмування, зосереджуються на описі властивостей бажаного рішення (що), залишаючи невизначеним фактичний алгоритм, який необхідно використати для знаходження рішення (як). Проте, більшою мірою, мови логічного програмування, і, меншою, — мови обмеження, можуть описувати алгоритми й деталі реалізації, бувши таким чином не строго декларативними за першим визначенням.
Декларативні мови програмування
Декларативні мови програмування — це мови програмування високого рівня[джерело?], в яких програмістом не задається покроковий алгоритм розв'язання задачі («як» вирішити завдання), а деяким чином описується, «що» потрібно отримати як результат. Механізм обробки зіставлення зі зразком декларативних тверджень вже реалізовано у пристрої мови.[прояснити]
Типовим прикладом таких мов є мови логічного програмування (мови, засновані на системі правил). У програмах на мовах логічного програмування відповідні дії виконуються тільки за наявності необхідної дозвільної умови.
Характерною особливістю декларативних мов є їхня декларативна семантика. Основна концепція декларативної семантики полягає в тому, що зміст кожного оператора не залежить від того, як цей оператор використовується в програмі. Декларативна семантика значно простіша за семантику імперативних мов.
Найпоширенішою мовою логічного програмування є мова Пролог.