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

Параллельное логическое программирование - это вариант логического программирования, в котором программы представляют собой наборы охраняемых предложений Хорна в форме:

B 1 ,…, B n .

Конъюнкция G 1 ,…, G n называется защитой предложения, а ǀ - оператором фиксации.

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

H, если G 1 и… и G n или B 1 и… и B n .

Однако процедурно, когда есть несколько предложений, чьи главы H соответствуют заданной цели, тогда все предложения выполняются параллельно, проверяя, выполняются ли их защитные меры G 1 ,…, G n . Если придерживаются защитных мер более чем одного предложения, то совершается выбор одного из пунктов, и выполнение продолжается с подцелями B 1 ,…, B n выбранного пункта. Эти подцели также могут выполняться параллельно. Таким образом, параллельное логическое программирование реализует форму «недетерминизма безразлично», а не «недетерминизма не знаю».

История

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

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

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

Ссылки