4761

Введение в язык Пролог (Prolog)

Реферат

Информатика, кибернетика и программирование

Введениев язык Пролог История происхождения языка Prolog. Prolog в России Версии языка Пролог Диалект SWI-Prolog Prolog — это язык программирования для символических, нечисловых вычислений. Он особенно хорошо...

Русский

2012-11-25

55.5 KB

65 чел.

Введение в язык Пролог

  1.  История происхождения языка Prolog.
  2.  Prolog в России
  3.  Версии языка Пролог
  4.  Диалект SWI-Prolog 

Prolog — это язык программирования для символических, нечисловых вычислений. Он особенно хорошо приспособлен для решения проблем, которые касаются объектов и отношений между объектами.

В отличие от подавляющего большинства других языков Prolog обычно рассматривается в одном контексте с понятием "логическое программирование". Сторонники этого направления считают, что человек должен не задавать компьютеру последовательность команд на некоем ориентированном на компьютер языке, а описывать саму задачу в совершенно абстрактных логических терминах, не оперирующих определениями "байт" или "указатель", то есть своего рода создавать модель анализируемой проблемы и пытаться получить положительные или отрицательные результаты этого анализа.

У многих людей, знакомых с логическим программированием, обычно возникают ассоциации с японским проектом компьютеров пятого поколения, все программное обеспечение которых создавалось на базе Пролога  (подробно: в октябре 1981 года Японское министерство международной торговли и промышленности объявило о создании исследовательской организации — Института по разработке методов создания компьютеров нового поколения (Institute for New Generation Computer Technology Research Center)). Целью данного проекта было создание систем обработки информации, базирующихся на знаниях. Предполагалось, что эти системы будут обеспечивать простоту управления за счет возможности общения с пользователями при помощи естественного языка. Эти системы должны были самообучаться, использовать накапливаемые в памяти знания для решения различного рода задач, предоставлять пользователям экспертные консультации, причем от пользователя не требовалось быть специалистом в информатике. Предполагалось, что человек сможет использовать ЭВМ пятого поколения так же легко, как любые бытовые электроприборы типа телевизора, магнитофона и пылесоса. Вскоре вслед за японским стартовали американский и европейский проекты. Появление таких систем могло бы изменить технологии за счет использования баз знаний и экспертных систем. Основная суть качественного перехода к пятому поколению ЭВМ заключалась в переходе от обработки данных к обработке знаний. Японцы надеялись, что им удастся не подстраивать мышление человека под принципы функционирования компьютеров, а приблизить работу компьютера к тому, как мыслит человек, отойдя при этом от фон неймановской архитектуры компьютеров. В 1991 году предполагалось создать первый прототип компьютеров пятого поколения. Некоторые эксперты считают, что этот проект фактически провалился, и причиной этому послужили некоторые присущие Прологу функциональные ограничения. Строго говоря, Пролог не является языком программирования в чистом виде. С одной стороны, это оболочка экспертной системы, с другой - интеллектуальная база данных, что самое важное, не реляционная.

Математическая модель, лежащая в основе Пролога, довольно сложна, и по мощности системы формирования запросов к базе с этим языком не сравнится ни одна из коммерческих СУБД.

История происхождения языка Prolog

Алан Колмероэ, автор языка Пролог, начал работы над полноценной компьютерной реализацией трудов Ковальского с 1972 года во французском университете Марсель-Экс. Он составил алгоритм формального способа интерпретации процесса логического вывода и разработал систему автоматического доказательства теорем, которая была написана на Фортране. Она-то и послужила прообразом Пролога. Название его произошло от Programmation en Loqicue - ЛОГическое ПРОграммирование. Говорят, что придумала это название жена Алана.

Первое время, в начале 70-х, Пролог был не очень популярен, так же как и Лисп, он пребывал в некоем забвении, вызванном отсутствием хороших реализаций, но вскоре появились первые компиляторы с этого языка, в частности, прекрасная реализация Дэвида Уоррена для компьютера DEC-10 в Эдинбурге, ставшая своего рода стандартом вплоть до сегодняшнего дня.

Эффективность этой версии заставила специалистов по искусственному интеллекту по-новому взглянуть на Пролог. В некоторых приложениях, типичных для Лиспа, таких как обработка списков, Пролог уже не уступал своему конкуренту, что и послужило в дальнейшем стимулом для ряда специалистов по логическому программированию к переходу на этот язык.

В качестве типовых данных Пролог использует элементарные единицы данных, так называемые атомы - строки символов и числа. Из атомов составляются списки и бинарные деревья. Сама "программа" строится из последовательности фактов и правил, и затем формулируется утверждение, которое Пролог будет пытаться доказать с помощью введенных правил. Таким способом можно описывать очень сложные проблемы, которые будут решаться самим Прологом автоматически. Это происходит с помощью метода сопоставления и рекурсивного поиска. Вообще рекурсия играет в Прологе не меньшую роль, чем в Лиспе, хотя и носит декларативный характер.

Сразу после появления Эдинбургской версии Пролога быстро были успешно осуществлены различные проекты, ранее казавшиеся очень сложными в реализации. Появилась возможность создания интеллектуальных нереляционных баз знаний с иерархической структурой на основе стандартного механизма с гибкой организацией очень сложных запросов. Были написаны эффективные программы для решения переборных задач, в частности, из области молекулярной биологии и проектирования СБИС, где требовалось учитывать либо сложные внутренние структуры, либо большое число правил, описывающих организацию объекта. Хорошо зарекомендовал себя Пролог в качестве экспертной оболочки.

Пролог в России

Как ни покажется странным, популярность Пролога продолжает оставаться на относительно высоком уровне. Причем есть люди, не просто использующие этот язык в качестве инструмента для прикладных применений, но и непосредственные разработчики компиляторов для хорошо известных за рубежом фирм.

В частности, московский программист Анатолий Дедков с 1992 г. работает в американской компании Paralogic, Inc., занимаясь разработкой и совершенствованием Пролог-компилятора PTC (Prolog-To-C). Эту версию отличает такая оригинальная возможность, как компиляция в Си-текст (ANSI стандарт), что позволяет в итоге получать переносимый и высокопроизводительный код, а также осуществлять тесную интеграцию с программами, написанными на Си. Модульная структура PTC снимает ряд ограничений, нередко возникающих при переводе Пролог-программ на другие языки. Поддерживается стандартный интерфейс с любыми СУБД через ODBC-протокол, а также работа с внешними базами данных в индексном формате и формате двоичных деревьев. Для поддержки графического интерфейса с пользователем обеспечивается связь с языком Tcl/Tk. Вместе со всеми инструментальными наборами эта система реализована для UNIX и Windows NT.

В последнее время в связи с бурным развитием Internet г-н Дедков занимается добавлением в PTC новых возможностей, связанных в первую очередь с использованием Пролога в Web-серверах для реализации различных поисковых механизмов и поддержки запросов к базам данных (БД). Семантика Пролога позволяет очень компактно описывать самые сложные и эффективно реализуемые запросы, как к реляционным БД, так и к БД с иерархической и другой нелинейной структурой, для чего обычно требуется трудоемкое cgi-программирование. При этом возможность компиляции Пролог-программ в Java-код представляется достаточно перспективным направлением.

К сожалению, в США фактически нет рынка для Пролог-компиляторов. Это объясняется, по мнению Дедкова, в первую очередь сильной "раскрученностью" других языков. Интересно, что причиной невысокой популярности ряда языков программирования, явно обладающих более мощными и выразительными средствами, таких, как тот же Prolog или Lisp, Дедков считает их происхождение. В самом деле, прекрасные языки, разработанные в Европе, известны относительно узкому кругу специалистов, а наиболее популярны у разработчиков созданные в США. Примеров действительно более чем достаточно. С американской стороны пришли C, C++, Fortran, Basic, Cobol, PL/I, а в Европе родились Simula 67, Algol 68, Prolog, Lisp.

Основные области применения Пролога:

  •  быстрая разработка прототипов прикладных программ;
  •  автоматический перевод с одного языка на другой;
  •  создание естественно-языковых интерфейсов для существующих систем;
  •  символьные вычисления для решения уравнений, дифференцирования и интегрирования;
  •  проектирование динамических реляционных баз данных;
  •  экспертные системы и оболочки экспертных систем;
  •  автоматизированное управление производственными процессами;
  •  автоматическое доказательство теорем;
  •  полуавтоматическое составление расписаний;
  •  системы автоматизированного проектирования;
  •  базирующееся на знаниях программное обеспечение;
  •  организация сервера данных или, точнее, сервера знаний, к которому может обращаться клиентское приложение, написанное на каком-либо языке программирования.

Области, для которых Пролог не предназначен: большой объем арифметических вычислений (обработка аудио, видео и т.д.); написание драйверов.

Версии Prolog

Изучать Пролог без привязки к конкретной его версии не совсем целесообразно. Версий Пролога очень много. Мы остановимся на наиболее известной у нас в стране и довольно эффективной версии Пролога — Турбо Прологе. Его начинала разрабатывать фирма Borland International в содружестве с датской компанией Prolog Development Center (PDC). Первая версия вышла в 1986 году. Последняя совместная версия имела номер 2.0 и была выпущена в 1988 году.

В 1990 году PDC получила монопольное право на Турбо Пролог и дальше продвигала его под названием PDC Prolog.

В 1992 году вышла версия PDC Prolog 3.31.

В 1996 году, при участии группы питерских программистов, Prolog Development Center выпустила систему Visual Prolog 4.0. В состав среды Visual Prolog были включены инструментальные средства генерации кода, конструирующие управляющую логику, интерфейс визуального программирования и многие другие средства, позволяющие ускорить разработку приложений. Помимо прочих достоинств среды Visual Prolog стоит обратить внимание на возможность использования в идентификаторах символов национального алфавита, в частности, можно употреблять в программах русские имена доменов, предикатов и переменных, что делает программу более понятной и самодокументированной. В декабре 1997 г. фирма PDC выпустила Visual Prolog 5.0, а с января 1999 г. приступила к распространению версии 5.1. В настоящее время все желающие могут бесплатно скопировать через Internet последнюю версию системы Visual Prolog 5.1 Personal Edition, функционирующую в средах Windows 3.1/95/98, NT, OS/2, SCO UNIX и Linux. Сейчас вышла шестая версия системы Visual Prolog, которая, однако, довольно далеко шагнула в сторону не только от эдинбургской версии Пролога, но даже и от своей пятой версии, которая практически без проблем принимала программы на Турбо Прологе.

Для учебных целей вполне пригоден Turbo Prolog. На использование этой реализации языка рассчитаны все приводимые примеры и задачи.

SWI-Prolog

SWI-Prolog это свободная (открытая) реализация языка программирования Prolog, часто используемая для преподавания и приложений Semantic Web. Эта реализация представляет богатый набор возможностей, библиотеки для constraint logic programming, многопоточности, юнит-тестирования, GUI, интерфейс к языку программирования Java, ODBC и т. д., поддерживает литературное программирование, содержит реализацию веб-сервера, библиотеки для SGML, RDF, RDFS, средства разработчика (включая IDE с графическими отладчиком и профилировщиком), и обширную документацию.

SWI-Prolog работает на платформах Unix, Windows, и Macintosh.

SWI-Prolog постоянно развивается, начиная с момента создания в 1987 году. Его создателем и основным разработчиком является Jan Wielemaker

 Название SWI происходит от Sociaal-Wetenschappelijke Informatica («Social Science Informatics»), первоначального названия группы в Амстердамском университете, где работает Wielemaker. Позже название этой группы сменилось на HCS (Human-Computer Studies).


Данной работой Вы можете всегда поделиться с другими людьми, они вам буду только благодарны!!!
Кнопки "поделиться работой":

 

А также другие работы, которые могут Вас заинтересовать

33889. Культурно-просветительная работа, общее и специальное образование. Во второй половине 40-х – начале 50-х гг 38 KB
  Задачи образования – восстановить всеобщее 7летнее образование с 1949 обучить тех кто не обучился в войну школы рабочей молодежи школы комсомольской молодежи. Проблема уровня образования. Пример Красноярского края в восстановлении образования. Чрезмерная идеологизация образования.
33890. Наука в послевоенный период 41.5 KB
  были открыты Институт точной механики и вычислительной техники Институт радиотехники и электроники Институт прикладной геофизики Институт физической химии Институт атомной энергии Институт ядерных проблем и др. Был создан Институт языкознания АН СССР во главе которого встал академик В. были открыты Институт точной механики и вычислительной техники Институт радиотехники и электроники Институт прикладной геофизики Институт физической химии Институт атомной энергии Институт ядерных проблем и др. Был создан Институт языкознания АН СССР...
33891. Развитие искусства во второй половине 40-х – начале 50-х гг 52 KB
  Тема войны – Непринцев Отдых после боя Неменский сестры наши Костецкий Возвращение Лактионов Письмо с фронта. Тема восстановления Яблонская Хлеб Весна. Выдающиеся произведения: тема войны – Некрасов В окопах Сталинграда Фадеев Молодая гвардия Казакевич звезда Полевой Повесть о настоящем человеке Твардовский Дом у дороги. Овечкин – Районные будни тема деревни.
33892. Внешняя политика СССР в послевоенный период: отношения с Западными странами. Холодная война 54 KB
  Внешняя политика СССР в послевоенный период: отношения с Западными странами. Внешнеполитическая доктрина СССР – против поддержки социалистических стран – принцип мирного сосуществования. тезис о враждебности капиталистического окружения СССР. Сначала у СССР была мирная внешнеполитическая доктрина затем ужесточилось так же и у США.
33893. СССР и страны Центральной и Восточной Европы в послевоенный период. Роль СССР в формировании мировой системы социализма 35 KB
  СССР и страны Центральной и Восточной Европы в послевоенный период. Роль СССР в формировании мировой системы социализма. В 19451946 существовали коалиционные правительства в Западной Европе потом постепенно произошел переход к коммунистическим режимам: Румыния – отречение Михая Болгария – конституция 1947 и усиление позиций коммунистов Польша – отставка коалиционного правительства Венгрия – победа коммунистов на выборах Чехословакия – сопротивление события 1948 надежда сохранить отношения и с СССР и с Западом. В сентябре...
33894. Поиск путей обновления общественно-политической жизни в СССР в 1953-1955 гг 37 KB
  Маленков председатель Совмина глава министерства Берия – МВД МГБ зам председателя совмина Каганович – первый заместитель председателя Совета Министров СССР с 1952 года член Президиума ЦК КПСС Молотов – МИД Булганин – министр обороны Ворошилов – председатель президиума верховного совета. После этого большую власть получил Маленков заявление о группе В нужно поднимать деревню. На ней учредили пост 1 секретаря на который избрали Хрущева доклад Хрущева о с х Январь 1955 – пленум ЦК КПСС слушалось дело Маленкова которого обвинили в...
33895. ХХ съезд КПСС и его историческое значение. Борьба с оппозицией в послевоенный период 27.5 KB
  Первоначально преодоление культа личности сводилось к перестройке пропаганды 1953 но Маленков заявил что дело не только в этом ведь этот вопрос связан с вопросом коллективного руководства.1956 – доклад Хрущева О культе личности и его последствиях. Идея попытки преодолеть культ личности принадлежит Маленкову а не Хрущеву. Все идеи доклада были повторены в постановлении ЦК: в стране сложился культ личности Сталина вопрос о причинах свелся к личным качествам Сталина опубликованы последние работы Ленина культ личности не...
33896. Индустриальное развитие страны в 50-х гг 53.5 KB
  Индустриальное развитие страны в 50х гг. широкое развитие получает НТП. Индустриальное развитие шло по пятилеткам – 19511955 пятая 19561960 шестая. Достижения в транспорте – воздушный реактивные самолеты в пассажирских перевозках водный суда на подводных крыльях морской атомный ледокол сухопутный переход на электровозы и электрички автомобильный примитивное развитие трубопроводный трубопровод Дружба.
33897. Сельское хозяйство СССР в 50-х гг 27.5 KB
  Еще на XIX съезде заявили что продовольственная проблема решена но это было ложью. Вопрос о насыщении с х техникой и снабжении кадрами для этой техники проблема кадров инженернотехнического профиля. В январе 1955 на пленуме Хрущев поставил задачу подъема животноводства проблема кормов. Проблема раскрестьянивания – одна из главных в нашей историографии.