Параллельное логическое программирование - Concurrent logic programming

Параллельное логическое программирование это вариант логическое программирование в каких программах находятся наборы охраняемых Роговые оговорки формы:

B1,…, Bп.

Соединение грамм1, … , ГРАММп называется сторожить статьи, и ǀ является оператором обязательства.

Декларативно оговорки Рога с осторожностью читаются как обычные логические следствия:

H, если G1 и… и Gп или B1 и… и Bп.

Однако процедурно, когда есть несколько статей, главы которых ЧАС соответствуют заданной цели, тогда все пункты выполняются параллельно, проверяя, грамм1, … , ГРАММп держать. Если придерживаются более чем одной статьи, то совершенный выбор производится по одному из пунктов, и исполнение продолжается с подцелями B1,…, Bп выбранного пункта. Эти подцели также могут выполняться параллельно. Таким образом, параллельное логическое программирование реализует форму «недетерминизма безразлично», а не «недетерминизма не знаю».

История

Первым языком параллельного логического программирования был Relational Language Кларка и Грегори, который был ответвлением IC-Prolog. Более поздние версии параллельного логического программирования включают Шапиро Параллельный пролог и язык оговорки о охраняемом роге Уэды.

Развитие параллельного логического программирования получило импульс, когда GHC использовался для реализации KL1, язык системного программирования Японский проект пятого поколения (FGCS). Проект FGCS - это инициатива японской Министерство международной торговли и промышленности, начатая в 1982 году, чтобы использовать массовые параллельные вычисления / обработку для приложений искусственного интеллекта. На выбор параллельного логического программирования в качестве «недостающего звена» между оборудованием и приложениями повлияло посещение проекта FGCS в 1982 г. Эхуд Шапиро, который изобрел Concurrent Prolog.

Смотрите также

Рекомендации