4761

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

Реферат

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

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

Русский

2012-11-25

55.5 KB

72 чел.

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

  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).


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

 

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

40742. Організація роботи менеджера 244.83 KB
  Джерело світла повинно розташовуватися так щоб світло не сліпило очі. Найкраще щоб джерело світла знаходилося ліворуч. Джерело світла повинно розташовуватися так щоб світло не сліпило очі відбиваючись від блискучої поверхні стола. Раціональне розміщення робочих місць стосовно джерела світла.
40743. Налично-денежный оборот и денежное обращение 62.13 KB
  Наличный денежный оборот непрерывный процесс движения наличных денег в форме банкнот банковских билетов казначейских билетов металлических монет. Наличный оборот начинается с указания ЦБ о переводе наличных денег которое передается РКЦ из резервных фондов в оборотные кассы из которых наличные деньги направляются в операционные кассы кредитных организаций банков. Эмиссию наличных денег осуществляет ЦБ РФ. Часть этих денег обслуживает межбанковские расчеты часть направляется в качестве кредитов другим банкам но большая часть...
40744. Диагностирование и лечение кожных заболеваний 122.02 KB
  Гигантская крапивница похожа на обычную лихорадку отличие в том что при первой опухлость появляется под кожей а не на поверхности кожи. Гистамин – химическое вещество выделяемое определенными клетками которые расположены вдоль кровяных сосудов кожи. Дермографизм: сыпь возникающая после механического повреждения кожи удар царапание. Дерматиты Дерматиты воспалительные реакции кожи в ответ на воздействие раздражителей...
40745. Информация об интеллектуальной собственности 32.3 KB
  Патентные исследования патентные исследования это исследования технического уровня и тенденций развития объектов техники их патентоспособности патентной чистоты конкурентоспособности на основе патентной и другой информации. Патентные исследования проводят при: разработке научнотехнических прогнозов; разработке планов развития науки и техники; создании объектов техники; освоении и производстве продукции; определении целесообразности экспорта промышленной продукции и экспонировании ее образцов на международных выставках и...
40746. Наука як сфера людської діяльності 59.51 KB
  Поняття зміст і функції науки Курс: 1 Факультет: 4й медичний Поняття зміст і функції науки Актуальність теми. Необхідність надання загальних відомостей про завдання курсу а також про науку як систему знань і уявлень про сутність науки аналіз змісту та функцій науки диктується вимогами розвитку та становлення сучасної науки і є необхідною передумовою формування наукового світогляду необхідного майбутнім спеціалістам. Цілі лекції мета Навчальні: ознайомитись з...
40747. Філософія Середньовіччя, Відродження та Нового часу 49.79 KB
  Центральна проблема філософії – проблема взаємовідносин людини та світу – у середньовічній філософії набирає специфічного змісту: це взаємовідносин Бога людини та світу. Завдання людини – зробити правильний вибір між цими двома світами. Утверджуючи переконання що істинне буття людини – це її духовне буття християнська теософія від Теос – Бог скеровує увагу філософів середньовіччя на дослідження внутрішнього духовного світу людини на освоєння безмежних глибин людської душі. Якщо ж людина знає розуміє те в що вірить її віра...
40748. Суб’єкти кримінального процесу 68.21 KB
  Інші учасники кримінального провадження. Відводи суб’єктів кримінального провадження. Поняття і класифікація суб’єктів кримінального процесу Кримінальний процесуальний кодекс України прийнятий 13 квітня 2012 року чітко не визначає поняття і не подає класифікацію суб’єктів кримінального провадження тому їх називають порізному: 1 особи які беруть участь у процесуальній дії – статті 104 107 КПК; 2 учасники кримінального провадження – статті 27 113 237 КПК та ін.; 3 учасники судового провадження – статті 34 107 317 347 КПК та ін.
40749. Сучасні види та способи друку 175.54 KB
  Класифікація видів та способів друку. Спеціальні види та способи друку. Класифікація видів та способів друку. Вид друку оприділяється конкретними особливостями роз положення друкарських елементів відносно пробільних на друкарських формах.
40750. АХОДИ ЗАБЕЗПЕЧЕННЯ КРИМІНАЛЬНОГО ПРОВАДЖЕННЯ 107.41 KB
  Затримання особи та обрання їй запобіжного заходу у вигляді взяття під варту : у чинному КПК України та у його проекті О. Поміщення особи у медичний заклад : пропозиції до нового КПК України В. 131 КПК заходами забезпечення кримінального провадження є: 1 виклик слідчим прокурором судовий виклик і привід ст. 133−143 КПК; 2 накладення грошового стягнення ст.