Параллельное логическое программирование - 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.
Смотрите также
- Программирование логики параллельных ограничений
- Логическое программирование
- Недетерминированное программирование
Рекомендации
- Кларк, К. Л. и Грегори, С. (1981). Реляционный язык для параллельного программирования. В материалах конференции 1981 г. по языкам функционального программирования и компьютерной архитектуре (стр. 171-178). ACM.