Логические языки программирования
Логические языки программирования содержат конструкции, позволяющие выполнить описание проблемы в терминах фактов и логических формул, а собственно решение проблемы выполняет система с помощью механизмов логического вывода. От языка программирования неотъемлем механизм конструктивного вывода целевого утверждения, основанный на строгих математических моделях. Язык Prolog является родоначальником семейства ему подобных языков, в котором можно выделить три ветви:
· Модификации языка (использование более мощных логических средств, внесение модульности и т. п.).
· Функциональное направление (комбинация с функциональными языками)
· Параллельное направление (логическое программирование по сути своей параллельно).
Класс задач
Класс задач логического программирования практически совпадает с классом задач функционального программирования.
2.4.2. Методология логического параллельного программирования
Логическое программирование допускает естественную параллельную реализацию.
2.5. Методология программирования в ограничениях
Методология программирования в ограничениях- подход, в котором в программе определяется тип данных решения, предметная область решения и ограничения на значение искомого решения. Решение находится системой. Методология предлагает двухуровневую архитектуру, интегрирующую компонент ограничения и программный компонент. Компонент ограничений обеспечивает основные операции и состоит из системы выводов на фундаментальных свойствах системы ограничений. Операции, окружающие компонент ограничений, реализуются программно-языковым компонентом.
|
|
Происхождение
Методология возникла в начале 80-х годов ХХ века как перспективная область исследований на пересечении символьных вычислений, искусственного интеллекта, исследования операций и интервальной арифметики.
Методы и концепции
Метод описательной модели вычисленийзаключается в том, что программа на языке программирования содержит описание понятий и задач. Метод поддерживается концепцией модели.
Вычислительная модель
Программирование в ограничениях - это программирование в терминах постановок задач.
Синтаксис и семантика
Постановка задачи – это конкретный набор переменных (V), соответствующих им конечных (перечислимых) множеств значений (D), и набор ограничений (C). Ограничения представлены как утверждения, в которые в качестве «параметров» входят переменные из некоторого подмножества набора V. Решение такой задачи - набор значений переменных, удовлетворяющий всем ограничениям (С[j]) .
|
|
Семантически исполнение программы рассматривается как нахождение значений переменных. При этом порядок удовлетворения отдельных ограничений не имеет значения, и система обычно стремится оптимизировать порядок нахождения значений с целью минимизировать откат в случае неуспеха.
С этой целью набор ограничений может быть соответствующим образом преобразован - по правилам, аналогичным правилам языка Prolog. Любую задачу можно рассматривать как ограничение: "значения переменных должны быть решением этой задачи".
Языки программирования в ограничениях
Языки программирования в ограничениях позволяют в программе определить тип данных решения, предметную область решения и ограничения на значение искомого решения. Решение находится системой. Данные языки получили наибольшую неизвестность в 80-х годах ХХ века.
Заметим, что зачаточным языком программирования в ограничениях может служить язык описания условий для утилиты "make".
Язык программирования УТОПИСТ (Универсальные Текстовые ОПИСания Терминов) предназначен для описания понятий и задач. Язык является базовым для инструментальной системы программирования ПРИЗ. Язык имеет процедурную часть (поскольку при описании задачи иногда приходится описывать действия), но основная его выразительность достигается за счет описаний.
Класс задач
Класс задач программирования в ограничениях - задачи исследования операций и искусственного интеллекта. В таких задачах часто используется некоторое пространство решений, сужением которого достигается необходимый результат. Такие сужения можно естественным образом представить как ограничения.
Дата добавления: 2018-05-12; просмотров: 445; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!