Логическое программирование Лекция 2 Введение в язык Пролог.

Презентация:



Advertisements
Похожие презентации
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Advertisements

Тема 15. Этапы подготовки и решения задач на ЭВМ.
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
2012 год Кафедра прикладной математики Руководитель работы: д.т.н., проф. Фальк В.Н. Национальный исследовательский университет «МЭИ» Выпускная работа.
Светлана Ахматова TVTB17. Содержание Введение Что такое логическое программирование? Planner Backtracking Стек Prolog 1.1 Пример программы: родственные.
Языки программирования.. Этапы создания программы. Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала разрабатывается.
ТЕХНОЛОГИИ РАЗРАБОТКИ ЭКСПЕРТНЫХ СИСТЕМ. Отличия систем искусственного интеллекта от обычных программных систем ХарактеристикаПрограммирование в системах.
Программа Виды программ Языки программирования. ПК – это электронный прибор, предназначенный для автоматизации создания, хранения, обработки и передачи.
Классификация. Язык программирования – это фиксированная система обозначений и правил, предназначенная для описания алгоритмов и структур данных.
Модели представления знаний. 1. Логические; 2. Продукционные; 3. Представление знаний на основе фреймов; 4. Представление знаний на основе семанти- ческих.
Выполнил: Гусев Данил. Что такое программное обеспечение? Возможности современного ПК столь велики, что все большее число людей находят ему применение.
Учебные курсы Учебный курсППОСПО Волшебный компьютерMS Office 2000 и выше OpenOffice.org ++ Занимательное ЛОГОзнание 35 часов, 57 кл. MSWLogo ++ Увлекательные.
АНАСТАСИЯ ТКАЧУК PK11-PV TEKO 1 Языки программирования.
Информационные технологии Литература Керниган Б., Ритчи Д. Язык программирования Си. М.И. Болски. Язык программирования Си. Справочник. 2.
История языков программирования. Язык программирования – это система команд, понятных ЭВМ. 1.машинно-ориентированные языки (языки низкого уровня): Автокоды,
Достоинства логической модели знаний. 1. В качестве «фундамента» здесь используется классический аппарат математической логики, методы которой достаточно.
Тема 2. Концептуальное проектирование. Лекция 1. Уровни моделей и этапы проектирования.
Лекция 5 Способы конструирования программ. Основы доказательства правильности.
Основы информатики и программирования 1 курс экономический факультет 1 курс экономический факультет.
Системы программирования – это совокупность программ, обеспечивающих автоматизацию разработки и отладку других программ.
Транксрипт:

Логическое программирование Лекция 2 Введение в язык Пролог

Содержание История и основатели языка Ключевые особенности Диалект SWI-Prolog 2

Язык Пролог 3 PROLOG ~ PROgramming in LOgic ( Программирование в терминах логики ) – самый популярный язык логического прогр. Язык основан на теории исчисления предикатов первого порядка и методах доказательства теорем. Основной метод вычислений – резолюция (resolution, процедура доказательства ) Поддерживает декларативный ( описательный ) стиль программирования – программы конструируются в терминах точного определения проблемной ситуации / формулировки задачи, без написания программы в виде последовательности инструкций по выполнению алгоритма (« что истинно », а не « как решить задачу ») Программа на Прологе определяет, является ли заданная цель истинной / достижимой, и если да – то при каких условиях / значениях переменных (« что получить »). Процедурность Пролога выражается в опеределении порядка действий по достижению цели (« как получить »).

История Пролога ( основы ) , "A machine oriented logic based on the resolution principle", "Journal of the ACM 12", Дж. Робинсон представил метод автоматического поиска доказательства теорем в исчислении предикатов первого порядка - " принцип резолюции ". работа Роберта Ковальского " Логика предикатов как язык программирования ", 1974: заложила теоретические основы. В 1973 году " группа искусственного интеллекта " во главе с Аланом Кольмероэ создала в Марсельском университете программу, предназначенную для доказательства теорем.; программа использовалась при построении систем обработки текстов на естественном языке ; получила название Prolog ( от Programmation en Logique); прообраз Пролога (1 я эксперим. реализация )

История Пролога ( реализации ) 5 Первая программа на Прологе была написана в начале 1970 годов во Франции, в рамках проекта по пониманию естественного языка. Маартен ван Эмден из Эдинбурга ( экспериментальная демонстрационная система ); совместно в 1976 г. предложили два подхода к прочтению текстов логических программ : процедурный и декларативный. В 1977 году в университете Эдинбурга, каф. ИИ, Дэвид Уоррен и Фернандо Парейра создали очень эффективный компилятор языка для ЭВМ DEC–10 (" эдинбургская версия ") - прототип для многих последующих реализаций Пролога ; был сам написан на Прологе. В 1980 году Кларк и Маккейб в Великобритании разработали версию Пролога для персональных ЭВМ. В 1981 году стартовал проект Института по разработке методов создания компьютеров нового ( пятого ) поколения. в 1996 году был опубликован официальный стандарт ISO языка Prolog.

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

Достоинства Пролога 7 Часто используется для создания систем управления базами данных, где применяются очень сложные запросы, которые довольно легко записать на Прологе. В Прологе очень компактно, по сравнению с императивными языками, описываются многие алгоритмы ; Пролог - программу, как правило, очень легко писать, понимать и отлаживать. Прологу присущ ряд механизмов, которыми не обладают традиционные языки программирования : сопоставление с образцом, вывод с поиском и возвратом. Для хранения данных в Прологе используются списки, а не массивы. В языке отсутствуют операторы присваивания и безусловного перехода, указатели. Естественным и зачастую единственным методом программирования является рекурсия.

Основные области применения Пролога 8 быстрая разработка прототипов прикладных, автогенерация кода ; верификация программ и разработка высокоуровневых ЯП ; системы автоматического программирования ; естественно - языковые интерфейсы для существующих систем ; символьные вычисления : решение уравнений, диффернц./ интегрир.; автоматическое доказательство теорем ; проектирование динамических реляционных БД и СУБД ; экспертные системы и оболочки экспертных систем ; автоматический перевод с одного языка на другой ; системы автоматизированного проектирования ; и многие другие области … ( в т. ч. связанные с ИИ )

Ключевые особенности 9 Области, для которых Пролог не предназначен : большой объем арифметических вычислений ( обработка аудио, видео и т. д.); написание драйверов. К достоинствам языка относятся : сочетание декларативного и процедурного подхода ; простые и легко понимаемые тексты программ ; высокая степень модульности, обеспечивающая модификацию и отладку программ ; эффективность реализации интерпретатора ( транслятора ) на всех типах ЭВМ.

Диалекты Пролога 10 На сегодня существует довольно много реализаций Пролога. Наиболее известные из них следующие: Turbo Prolog, SWI Prolog, Micro Prolog, AMZI-Prolog, Arity Prolog, CProlog, Quintus Prolog, Strawberry Prolog, UNSW Prolog и т. д. … В России были разработаны такие версии Пролога как: Пролог-Д (Сергей Григорьев), Акторный Пролог (Алексей Морозов), Флэнг (Александр Манцивода, Вячеслав Петухин).

SWI Prolog 11 мощная среда разработки с набором графических инструментов ХРСЕ, распространяемая на условиях лицензии GNU GPL. развитие началось в 1987 г., и сегодня он широко используется в исследованиях, образовании, а также в коммерческих приложениях. довольно популярная система, в основном благодаря удобной среде и переносимой библиотеке для создания графического интерфейса. почти как все реализации в основном следует знаменитому « эталону » - Edinburgh Prolog, но содержит частично реализованные особенности ISO Prolog.Edinburgh PrologISO Prolog содержит быстрый компилятор, профилировщик, набор библиотек и удобный интерфейс для подключения Си - модулей. реализован для ряда UNIX- платформ таких как HP, IBM Linux, для NeXT, OS/2, Sun и Sparc, а также для традиционного семейства ОС Windows.

Выводы 12 Язык Пролог является классическим языком парадигмы логического программирования ; основан на декларативном стиле. Автор Пролога – Алан Кольмероэ из Марсельского университета, разработавший 1 ю версию языка в 1973 году. Пролог используется во многих областях, связанных с искусственным интеллектом. Существует множество разновидностей ( диалектов ) Пролога, одна из самых эффективных – версия SWI Prolog, изучению которой будет уделено время на практике.