На протяжении многих тысячелетий человечество занимается накоплением, обработкой и передачей знаний. Для этих целей непрерывно изобретаются новые средства и совершенствуются старые: речь, письменность, почта, телеграф, телефон и т. д. Большую роль в технологии обработки знаний сыграло появление компьютеров.
В октябре 1981 года Японское министерство международной торговли и промышленности объявило о создании исследовательской организации — Института по разработке методов создания компьютеров нового поколения (Institute for New Generation
Появление таких систем могло бы изменить технологии за счет использования баз знаний и экспертных систем. Основная суть качественного перехода к пятому
Теперь уже понятно, что поставленные цели в полной мере так и не были достигнуты, однако этот проект послужил импульсом к развитию нового витка исследований в области искусственного интеллекта и вызвал взрыв интереса к логическому программированию. Так как для эффективной реализации традиционная фон неймановская архитектура не подходила, были созданы специализированные компьютеры логического программирования PSI и
В качестве основной методологии разработки программных средств для проекта ЭВМ пятого поколения было избрано логическое программирование, ярким представителем которого является
Название
Пролог основывается на таком разделе математической логики, как исчисление предикатов. Точнее, его базис составляет процедура доказательства теорем
В истории возникновения и развития
В 1965 году в работе "A machine oriented logic based on the resolution principle", опубликованной в 12 номере журнала "Journal of the ACM", Дж Робинсон представил метод автоматического поиска доказательства теорем в исчислении предикатов первого порядка, получивший название "принцип резолюции". Эту работу можно прочитать в переводе: Робинсон Дж. Машинно-ориентированная логика, основанная на
В 1973 году "группа искусственного интеллекта" во главе с Аланом Колмероэ создала в Марсельском университете программу, предназначенную для доказательства теорем. Эта программа использовалась при построении систем обработки текстов на естественном языке. Программа доказательства теорем получила название Prolog (от Programmation en Logique). Она и послужила прообразом Пролога. Ходят легенды, что автором этого названия была жена Алана Колмероэ. Программа была написана на Фортране и работала довольно медленно.
Большое значение для развития логического программирования имела работа Роберта Ковальского "Логика предикатов как язык программирования" (Kowalski R.
В 1976 г. Ковальский вместе с его коллегой Маартеном ван Эмденом предложил два подхода к прочтению текстов логических программ: процедурный и декларативный. Об этих подходах речь пойдет в третьей лекции.
В 1977 году в Эдинбурге Уоррен и Перейра создали очень эффективный компилятор
В 1980 году Кларк и Маккейб в Великобритании разработали версию Пролога для персональных ЭВМ.
В 1981 году стартовал вышеупомянутый проект Института по разработке методов создания компьютеров нового поколения.
На сегодня существует довольно много реализаций Пролога. Наиболее известные из них следующие: BinProlog, AMZI-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 стоит обратить внимание на возможность использования в идентификаторах символов национального алфавита, в частности, можно употреблять в программах русские имена доменов, предикатов и переменных, что делает программу более понятной и
Сейчас вышла шестая версия системы Visual Prolog, которая, однако, довольно далеко шагнула в сторону не только от эдинбургской версии Пролога, но даже и от своей пятой версии, которая практически без проблем принимала программы на Турбо Прологе.
Исходя из соображений малого объема, доступности, малой ресурсоемкости, традиций, а также отсутствия всего лишнего, в том числе графической оболочки, остановимся на Турбо Прологе 2.0, хотя, наверное, это выбор довольно спорный. Но наша цель на данный момент — сосредоточиться на самом языке. Всюду, где это возможно, мы будем изучать Пролог, желательно как можно ближе к "чистому" Прологу. Попытаемся разобраться и с теоретическими основами этого языка. Но, тем не менее, я считаю, что программирование стоит осваивать, имея доступ к компьютеру с установленной на нем конкретной версией изучаемого языка. Все разбираемые в лекциях примеры будут работоспособны во второй версии Турбо Пролога и выше. В частности, они должны компилироваться в Visual Prolog версий 4–5.2. Как правило, их можно без особых проблем перенести и в другие версии Пролога. При этом, возможно, потребуется легкая модификация. Например, замена конструкции " : — " на " is " и т.д.
Самое существенное отличие Турбо Пролога от эдинбургской версии (так называемого "классического" Пролога) — наличие в нем
В отличие от "классического" Пролога в Турбо Прологе нельзя определять операции. Турбо Пролог является компилируемым, а не интерпретируемым языком. К достоинствам Турбо Пролога относится возможность присоединять к программе на этом языке процедуры, написанные на Паскале, Си, Фортране или ассемблере.
На протяжении многих тысячелетий человечество занимается накоплением, обработкой и передачей знаний. Для этих целей непрерывно изобретаются новые средства и совершенствуются старые: речь, письменность, почта, телеграф, телефон и т. д. Большую роль в технологии обработки знаний сыграло появление компьютеров.
В октябре 1981 года Японское министерство международной торговли и промышленности объявило о создании исследовательской организации — Института по разработке методов создания компьютеров нового поколения (Institute for New Generation
Появление таких систем могло бы изменить технологии за счет использования баз знаний и экспертных систем. Основная суть качественного перехода к пятому
Теперь уже понятно, что поставленные цели в полной мере так и не были достигнуты, однако этот проект послужил импульсом к развитию нового витка исследований в области искусственного интеллекта и вызвал взрыв интереса к логическому программированию. Так как для эффективной реализации традиционная фон неймановская архитектура не подходила, были созданы специализированные компьютеры логического программирования PSI и
В качестве основной методологии разработки программных средств для проекта ЭВМ пятого поколения было избрано логическое программирование, ярким представителем которого является
Название
Пролог основывается на таком разделе математической логики, как исчисление предикатов. Точнее, его базис составляет процедура доказательства теорем
В истории возникновения и развития
В 1965 году в работе "A machine oriented logic based on the resolution principle", опубликованной в 12 номере журнала "Journal of the ACM", Дж Робинсон представил метод автоматического поиска доказательства теорем в исчислении предикатов первого порядка, получивший название "принцип резолюции". Эту работу можно прочитать в переводе: Робинсон Дж. Машинно-ориентированная логика, основанная на
В 1973 году "группа искусственного интеллекта" во главе с Аланом Колмероэ создала в Марсельском университете программу, предназначенную для доказательства теорем. Эта программа использовалась при построении систем обработки текстов на естественном языке. Программа доказательства теорем получила название Prolog (от Programmation en Logique). Она и послужила прообразом Пролога. Ходят легенды, что автором этого названия была жена Алана Колмероэ. Программа была написана на Фортране и работала довольно медленно.
Большое значение для развития логического программирования имела работа Роберта Ковальского "Логика предикатов как язык программирования" (Kowalski R.
В 1976 г. Ковальский вместе с его коллегой Маартеном ван Эмденом предложил два подхода к прочтению текстов логических программ: процедурный и декларативный. Об этих подходах речь пойдет в третьей лекции.
В 1977 году в Эдинбурге Уоррен и Перейра создали очень эффективный компилятор
В 1980 году Кларк и Маккейб в Великобритании разработали версию Пролога для персональных ЭВМ.
В 1981 году стартовал вышеупомянутый проект Института по разработке методов создания компьютеров нового поколения.
На сегодня существует довольно много реализаций Пролога. Наиболее известные из них следующие: BinProlog, AMZI-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 стоит обратить внимание на возможность использования в идентификаторах символов национального алфавита, в частности, можно употреблять в программах русские имена доменов, предикатов и переменных, что делает программу более понятной и
Сейчас вышла шестая версия системы Visual Prolog, которая, однако, довольно далеко шагнула в сторону не только от эдинбургской версии Пролога, но даже и от своей пятой версии, которая практически без проблем принимала программы на Турбо Прологе.
Исходя из соображений малого объема, доступности, малой ресурсоемкости, традиций, а также отсутствия всего лишнего, в том числе графической оболочки, остановимся на Турбо Прологе 2.0, хотя, наверное, это выбор довольно спорный. Но наша цель на данный момент — сосредоточиться на самом языке. Всюду, где это возможно, мы будем изучать Пролог, желательно как можно ближе к "чистому" Прологу. Попытаемся разобраться и с теоретическими основами этого языка. Но, тем не менее, я считаю, что программирование стоит осваивать, имея доступ к компьютеру с установленной на нем конкретной версией изучаемого языка. Все разбираемые в лекциях примеры будут работоспособны во второй версии Турбо Пролога и выше. В частности, они должны компилироваться в Visual Prolog версий 4–5.2. Как правило, их можно без особых проблем перенести и в другие версии Пролога. При этом, возможно, потребуется легкая модификация. Например, замена конструкции " : — " на " is " и т.д.
Самое существенное отличие Турбо Пролога от эдинбургской версии (так называемого "классического" Пролога) — наличие в нем
В отличие от "классического" Пролога в Турбо Прологе нельзя определять операции. Турбо Пролог является компилируемым, а не интерпретируемым языком. К достоинствам Турбо Пролога относится возможность присоединять к программе на этом языке процедуры, написанные на Паскале, Си, Фортране или ассемблере.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.