Неботов Е.Н., Дацун Н.Н. Современные программные и программно-аппаратные реализации Пролога/ – Региональная студенческпя научно-техническая конференция «Информатика и компьютерные технологии», 2005. – Секция «Искусственный интеллект и нейросетевые технологии». – Донецк, ДонНТУ, 2005.
СОВРЕМЕННЫЕ ПРОГРАММНЫЕ И ПРОГРАММНО-АППАРАТНЫЕ РЕАЛИЗАЦИИ ПРОЛОГА
Донецький національний технічний університет
В докладе рассмотрены современные программные и программно-аппаратные реализации пролога и рассмотрены способы реализации параллелизма в них.
Популярность Пролога продолжает оставаться на достаточно высоком уровне не только на Западе, но и в нашей стране. Причем в СНГ не просто используют этот язык в качестве инструмента для прикладных применений, но и разрабатывают компиляторы для хорошо известных за рубежом фирм. В частности, московский программист Анатолий Дедков с 1992 г. работает в американской фирме Paralogic, занимаясь совершенствованием Пролог-компилятора PTC (Prolog-To-C). Эту версию отличает такая оригинальная возможность, как компиляция в Си-текст (ANSI-стандарт), что позволяет в итоге получать переносимый и высокопроизводительный код, а также осуществлять тесную интеграцию с программами, написанными на Си. Модульная структура PTC снимает ряд ограничений, нередко возникающих при переводе Пролог-программ на другие языки.
Существуют различные реализации Пролога: программные и программно-аппаратные.
Наиболее продвинутой и гибкой програмнной реализацией в СНГ является объектно-ориентированная версия Пролога, разрабатываемая в Институте Радиотехники и Электроники РАН, называемая Акторный Пролог. Но Пролог обладает свойствами параллелизма, которые позволяют выполнять приложения более эффективно, как программно, так и на параллельной архитектуре.
Механизм доказательства целевого утверждения в языках ЛП основан на операции унификации, которая заключается в сопоставлении аргументов “подходящих” по образцу клауз, в результате которой означиваются неконкретизированные переменные. Имеются следующие виды параллелизма операций унификации:
- 1. ИЛИ-параллелизм имеет место, когда одна подцель может быть унифицирована с заглавиями нескольких клауз и тела этих клауз вычисляются различными вычислительными модулями.
- 2. И-параллелизм имеет место, когда подцели, принадлежащие данному запросу выполняются параллельно различными вычислительными модулями. И-параллелизм кажется наиболее многообещающая форма параллелизма. Каждое приложение содержит достаточное его количество.
Предикаты, стоящие в вершинах ветвей И, логически осуществляются параллельно. Исходные процессы поддерживаются до тех пор, пока не завершатся успешно все процессы, запущенные с И-параллелизмом. При завершении хотя бы одного порожденного процесса неуспехом, результат осуществления исходного процесса также считается безуспешным, и этот результат может быть возвращен в узел, расположенный выше.
3. Мультитрединг - получение и обработка одновременно «многих» (например, 128) потоков команд и данных: при этом устройство управления распределяет потоки для параллельного выполнения на внутренних вычислительных устройствах процессора.
Рассмотрим наиболее значимые и популярные реализации Пролога с различными вариантами реализации параллелизма в них в таблице представленной ниже:
Таблица 1.1 – Реализации Пролога и варианты параллелизма в них
Название |
Параллелизм |
Разработчик |
Источник |
Платформа |
Parlog |
И-параллелизм |
Parallel Logic Programming Ltd. |
www.parlog.com |
программно |
QuProlog |
мультитрединг |
University of Queensland |
[1] www.itee.uq.edu.au/
~pjr/HomePages/
QuPrologHome.html |
Unix |
Poplog |
|
Sussex University |
www.poplog.org |
Unix |
Open Prolog |
|
Mike Brady |
www..cs.tcd.ie/
open-prolog/ |
Apple |
Newt Prolog |
|
Electechno |
http://www.
electechno.com/ |
Apple MessagePad Newton |
Акторный пролог |
ИЛИ-параллелизм |
Морозов А. А. |
www.cplire.ru/Lab144/1251/09010000.html |
программно |
Сiao Prolog |
|
Ciao DevSystem |
www.clip.dia.fi.upm.es/Software/Ciao |
программно |
GNU Prolog |
|
Daniel Diaz |
www.gnu.org/software/prolog/prolog.html |
программно |
SWI Prolog |
мультитрединг |
The SWI-Prolog Foundation. |
www.swi-prolog.org |
программно |
YAP Prolog |
ИЛИ-параллелизм |
LIACC/Universidade do Porto |
www.ncc.up.pt/~vsc/Yap |
SUN,Linux,SPARC |
B-Prolog |
delaying (coroutining) |
Neng-Fa Zhou |
www.sci.brooklyn.cuny.edu/~zhou/bprolog.html |
программно |
Aquarius Prolog |
|
University of Southern California |
www.info.ucl.ac.be/people/PVR/aquarius.html |
UNIX |
Arity Prolog |
мультитрединг |
Arity |
www.arity.com/www.pl/products/ap.htm |
программно |
BinProlog |
мультитрединг |
Binnet |
www.binnetcorp.com/BinProlog |
программно |
Brain Aid Prolog |
|
Martin Ostermann |
www.comnets.rwth-aachen.de/~ost/private.html |
Transputing |
KLIC |
|
KLIC soft |
ftp.icot.or.jp/ifs/symbolic-proc/unix/klic/klic.tgz |
Sparcs, DEC 7000,Gateway P5-60 |
ЗАЯВКА НА ДОПОВІДЬ
на регіональну студентську науково-технічну конференцію
"Інформатика та комп’ютерні технології"
1. ВНЗ Донецький національний технічний університет
2. Секція Штучний інтелект та нейромережеві технології
3. Назва доповіді СОВРЕМЕННЫЕ ПРОГРАММНЫЕ И ПРОГРАММНО-АППАРАТНЫЕ РЕАЛИЗАЦИИ ПРОЛОГА _______________________________
4. Автори доповіді-студенти Нєботов Є.М. (5курс, ПО-01)
5. Факультет обчислювальної техніки та інформатики
6. Науковий керівник Теплинський Костянтин Сергійович
вчене звання аспірант науковий ступінь магістр техн. наук
посада асистент кафедра електронних обчислювальних машин
7. Адреса для листування 83102 м. Донецьк, пр. Ленінський 29/77
8. Е-mail kostya@cs.donntu.ru
9. Телефон 8(062) 66-11-13
Нєботов Є.М.
Донецький національний технічний університет
СОВРЕМЕННЫЕ ПРОГРАММНЫЕ И ПРОГРАММНО-АППАРАТНЫЕ РЕАЛИЗАЦИИ ПРОЛОГА
Науковий керівник: асистент К.С. Теплинський