Параллельное логическое программирование
Параллельное логическое программирование — это вариант логического программирования , в котором программы представляют собой наборы защищенных предложений Хорна вида:
- Ч :- G 1 , …, G n | Б 1 , …, Б н .
Союз G 1 , … , G n называется защитой пункта, а | является оператором обязательства.
Декларативно защищенные предложения Хорна читаются как обычные логические выводы:
- H, если G 1 и … и G n и B 1 и … и B n .
Однако в процедурном отношении при наличии нескольких статей, главы которых H соответствуют заданной цели, то все пункты выполняются параллельно , проверяя, являются ли их охранники G 1 , … , G n выполнены. Если соблюдаются меры защиты более чем одного предложения, то фиксированный выбор одного из предложений, и выполнение продолжается с подцелями делается B 1 , …, B n выбранного предложения. Эти подцели также могут выполняться параллельно. Таким образом, параллельное логическое программирование реализует форму «не заботящегося о недетерминизме».чем «не знаю недетерминизма».
История [ править ]
Первым языком параллельного логического программирования был реляционный язык Кейта Л. Кларка и Стива Грегори, который был ответвлением IC-Prolog. Более поздние версии параллельного логического программирования включают Эхуда Шапиро язык Concurrent Prolog и язык предложений Guarded Horn Уэды.
Развитие параллельного логического программирования получило толчок, когда предложение Guarded Horn использовалось для реализации KL1 , языка системного программирования японского проекта пятого поколения (FGCS) . Проект FGCS — это инициатива Министерства международной торговли и промышленности Японии стоимостью 400 миллионов долларов , начатая в 1982 году с целью использования массово- параллельных вычислений /обработки для искусственного интеллекта приложений . На выбор параллельного логического программирования в качестве «недостающего звена» между аппаратным обеспечением и приложениями повлияло посещение проекта FGCS в 1982 году Эхудом Шапиро , который изобрел Concurrent Prolog.
См. также [ править ]
- Параллельное программирование логики ограничений
- Логическое программирование
- Недетерминированное программирование
Ссылки [ править ]
- Кларк К.Л. и Грегори С. (1981). Реляционный язык для параллельного программирования . В материалах конференции 1981 года по функциональным языкам программирования и компьютерной архитектуре (стр. 171–178). АКМ.