ЛоготипКафедра математического обеспечения и применения ЭВМ
ENGРУС
ГлавнаяАбитуриентуНаправления подготовкио кафедреновостиобъявленияконтактыпрофессорско-преподавательский составнаукаисторияучебаметодические пособиямонографииолимпиадыaспирантыОбразцы документов

Функциональное и логическое программирование

Учебных занятий по дисциплине
100 час.
из них:
лекции
34 час.
лабораторные занятия
17 час.
индивидуальные занятия
17 час.
самостоятельная работа
32 час.
лектор курса
доцент каф.МОП ЭВМ Лутай В.Н.

Краткая аннотация курса:

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

Аннотация курса:

Дисциплина читается в весеннем семестре 3-го курса; согласно стандарту на нее отведено 34 часа лекций и 17 час лабораторных работ; в конце семестра - зачет.


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


Курс состоит из 2-х разделов:

  • Функциональное программирование
  • Логическое программирование


В этих разделах подробно рассматриваются следующие вопросы:

  • Введение в функциональное программирование и язык Lisp; основные типы данных; cписки и функции для работы с ними; пользовательские функции; организация рекурсивных функций; циклы, массивы, структуры; функционалы и их применение; использование Lisp для символьных вычислений. Средства языка для объектно-ориентированного программирования.
  • Введение в логическое программирование и язык Prolog; факты, вопросы, правила. описание механизма работы Prolog; структура программы на TProlog; управление перебором. списки, их представление в программах и рекурсивные процедуры для их обработки ; структуризация данных; динамические базы данных; применение языка Prolog для работы с графами и создания экспертных систем.

    Учебно-методическая литература:

    1. Хювен, Сеппянен " Мир ЛИСПа". т.1,2 Мир, 1991.
    2. Крюков и др. " Программирование на языке R- ЛИСП", М.,Мир, 1983.
    3. Лавров, Силагадзе " Автоматическая обработка данных ", М.,Наука, 1978.
    4. Хендерсон " Функциональное программирование " . М., Мир, 1983.
    5. Братко И. "Программирование на языке ПРОЛОГ для искусственного интеллекта" М., Мир,1990.
    6. Стерлинг Л., Шапиро Э. "Искусство программирования на языке ПРОЛОГ" М., Мир, 1990
    7. Доорс Дж., Рейнблен А., Вадера. "Пролог - язык программирования будущего" М., Финансы и статистика 1990.
    8. Лутай В.Н., Байдуганов М.Ю. Программирование на ArityProlog. ТРТУ, 1994.
    9. Лутай В.Н. Программирование на языках Лисп и Пролог. ТРТУ,1998.

    Замечания по литературным источникам:

    Монографиям по функциональному программированию и языку Lisp, изданным на русском языке в центральных издательствах, не менее 15 лет. Т.е. приходится признать, что функциональное программирование не находится в main stream отечественного программирования. С другой стороны, эта дисциплина является обязательной при подготовке специалистов по программному обеспечению.

    Классической монографией является Филд А., Харрисон П. Функциональное программирование - М.: Мир, 1993. - 637 с. ,ставшая, впрочем, библиографической редкостью.

    С языком Lisp я знакомился по двухтомнику Хювенен Э. Сяппянен И. Мир Лиспа 1,2 т. –М.: Мир, 1991

    Язык Common Lisp очень хорошо изложен в David S. Touretzky COMMON LISP: A Gentle Introduction to Symbolic Computation. The Benjamin/Cummings Publishing Company,Inc. 1990 (Доступен в Интернете).

    Вообще в Интернете можно получить много сведений по запросу «Лекции по Lisp». Но в полученном таким образом материале, как впрочем, и ранее названном, излагаются только классические возможности языка: рекурсивные функции, символьные вычисления и т.п. Между тем, Common Lisp обладает средствами объектно-ориентированного программирования, и вполне способен конкурировать с С++/С#. С этими его возможностями можно познакомиться в Люггер Д. Ф. Искусственный интеллект: стратегии и методы решения сложных проблем. – М.: Издательский дом 'Вильямс', 2003. - 864 с.

    Peter Seibel. Practical Lisp. 2003
    Существует язык Visual Lisp. Но он является частью системы AutoCad и обладает спецификой, связанной с особенностями системы. Он изложен в Полещук В. И., Полещук Н. Visual LISP и секреты адаптации AutoCAD.: БХВ-Петербург, 2001г.576 стр.

    В учебном пособии Лутай В.Н. Программирование на языке Common Lisp. ТТИ ЮФУ 2008 5 п.л. содержится описание как классических возможностей Lisp, так и его средств ООП.

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

    Далее, можно пользоваться

    • Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог - М.: Мир, 1990. - 333 с.
    • Малпас Дж. Реляционный язык Пролог и его применение - М.: Наука, 1990. - 464 с.

    Следующая монография рассказывает о логическом программировании в системе Турбо Пролог, использующую компиляцию логических программ. Марселлус Д. Программирование экспертных систем на Турбо Прологе: пер. с англ. - М.: Финансы и статистика, 1994. - 256 с.

    В связи с разработкой и активным внедрением языка Visual Prolog, способным создавать программы под Windows, на русском языке появилась книга Адаменко А.Н., Кучуков А.М. Логическое программирование и Visual Prolog. СПб.: БХВ Петербург, 2003. – 992 с. в которой излагается основы работы на Visual Prolog 5.2.

    Темы лекционных занятий по дисциплине:

    • Тема 1.Введение в функциональное программирование (2 часа)
    • Тема 2. Строго функциональный язык программирования (6 часов)
    • Тема 3. Элементы структурного программирования(2 часа)
    • Тема 4. Применение функциональных программ(4 часа) .
    • Тема 5. Основные элементы языка (10 часов)
    • Тема 6. Управление базами данных(8 часа)
    • Тема 7. Применение логических программ(4 часа).

    Банк контрольных вопросов по дисциплине:

    ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ЛИСП
    1. Типы данных языка.
    2. Представление данных в памяти
    3. Выполнение Лисп-программы
    4. Селекторы и конструктор
    5. Элементарные предикаты
    6. Арифметические и логические встроенные функции
    7. Встроенные функции для работы со списками
    8. Функции, определенные пользователем
    9. Разработка рекурсивных функций
    10. Рекурсивные функции для работы с числами
    11. Элементы структурного программирования : функции Set, Setq, Progn
    12. Встроенные функции, модифицирующие списки
    13. Встроенные функции для работы с атомами
    14. Ассоциативные списки
    15. Функции высших порядков
    16. Ввод-вывод в Лиспе
    17. Применение Лиспа для работы с графами
      ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ
    18. Факты и вопросы
    19. Правила
    20. Рекурсивное определение правил
    21. Типы данных языка
    22. Операции и встроенные предикаты для работы с термами
    23. Операторы
    24. Арифметические операторы и операторы сравнения
    25. Списки
    26. Рекурсивные процедуры обработки списков
    27. Отсечение и отрицание
    28. Ввод - вывод в Прологе
    29. Предикаты управления базой данных
    30. Структуризация данных и их обработка
    31. Применение ПРОЛОГа для обработки графов

© 2001-2011, кафедра МОП ЭВМ,
347928, г.Таганрог, пер. Некрасовский 44, ГСП-17А,
оф. Г-429, телефон +7(8634)371-673
email: kravch(at)tti.sfedu.ru

Технологический институт ЮФУ в г. Таганроге
Южный федеральный университет.
Все права защищены.

Создание сайта

Netcat Lite