Форум Поща Карта на сайта Търсене Връзки Контакти
Начало Обучение Избираеми дисциплини Oбщ списък на избираемите дисциплини и практикуми Логическо и функционално програмиране    English
Факултет по математика и информатика - Логическо и функционално програмиране
 Лектори  доц. д-р Елена Сомова, гл. ас. Павлина Иванова
Анотация
Тази избираема дисциплина има за цел подробно да запознае студентите с логическата
и функционалната парадигма за програмиране. Представят се основните понятия, както и 
механизмите на работа в двата стила за програмиране.Особено внимание се акцентира на: 
предикатното смятане от първи ред, метод на резолюцията, клаузи на Хорн, факти, правила, цели, 
механизъм на възврат за логическото програмиране и механизъм на оценяване, точкови двойки, 
ламбда изрази и  функции от по-висок ред за функционалното програмиранед. Списъците се 
разглеждат и в двата стила за програмиране като основна структура от данни, а рекурсията – 
като единствен начин за реализиране на повторенията. Показано е как по-сложните структури 
от данни се реализират чрез списъци. За провеждане на упражненията и за примерите на лекции 
като програмни езици се използват Пролог и Лисп.
Съдържание
1. Основи на логическото програмиране. Съждително смятане. Предикатно смятане 
от първи ред. (1 час)
2. Метод на резолюцията.Унификация на атомарни формули и терми.  (1 час) 
3. Езици за логическо програмиране. Пролог.Особености. Клаузи на Хорн.(0.5 час)
4. Клаузи. Факти. Конюнкция. Дизюнкция. Отрицание. Правила. Правила с дизюнкции. 
Цели. Структури. Клаузи със структури (1 час)
5. Механизъм на възврат. Същност. Приложение. (1 час)
6. Рекурсия. Лява и дясна рекурсия. (0.5 час)
7. Основни вградени предикати. Синтаксис и семантика. (1 час)
8. Списъци. Основни задачи със списъци. (1 час)
9. Работа с бази от данни. Експертни системи. (0.5 час)
10. Приложения. Двоично дърво. Граф. (0.5 час)
11. Особености на езиците за функционално програмиране. Видове езици за 
функционално програмиране. Лисп. Механизъм на оценяване. (0.5 час)
12. Примитивни обекти. Атоми. Списъци. (0.5 час)
13. Средства за комбиниране. Комбинации. (0.5 час)
14. Средства за абстракция. Дефиниране на функции. Оценяване на функции. 
Апликативен модел. Нормален модел на заместване. Вложени дефиниции. Блокова 
структура. (1 час)
15. Примитивни функции. Условни изрази. Примитивни предикати. Предикатни 
функции. Идентичност на обекти. Разрушаващи функции. (0.5 час)
16. Рекурсия и итерация. Линейна рекурсия. Линейна итерация. Дървовидна рекурсия. 
(0.5 час)
17. Точкови двойки и списъци. Конструиране. Достъп до съставните частите. Основни 
задачи със списъци. (0.5 час)
18. Ламбда изрази. Анонимни функции. Локални променливи. (1 час)
19. Функции от по-висок ред. Функции като параметри. Функции като връщани 
стойности. Примери за намиране на суми, произведения на числа, работа със списъци 
и др. (1 час)
20. Представяне на съставни структури от данни. Рационално число. Двоично дърво. 
Опашка. (1 час)

Литература:

  •  Bratko I., Prolog Programming for Artificial Intelligence, International Computer Science 
    Series, 2011. 
  •  O'Keefe R., The Craft of Prolog (Logic Programming), The MIT Press, ISBN: 0262512270, 
    2009.
  •  Тодорова М., Езици за функционално и логическо програмиране, Сиела, ISBN: 978-
    954-28-0828-2, 2010.
  •  Атанасова Т., Логическо и функционално програмиране, Унив. изд. Наука и 
    икономика, Варна, ISBN : 978-954-21-0562-6, 2012.
  •  Nilsson H., Trends in Functional Programming, Kindle Edition, Intellect Ltd., 2011.
  •  Sturm O., Functional Programming in C#: Classic Programming Techniques for Modern 
  • Projects (Wrox Programmer to Programmer), Kindle Edition, Wiley, ISBN: 0470744588, 
    2011.
  •  Sebesta R., Concepts of Programming Languages (9th Edition), Addison Wesley, ISBN: 
    0136073476, 2009.
  •  Дочев Д. и др., Програмиране на Пролог, НИ, С., 1989.
  •  Стойчев Л., А. Антонов, И. Филипов, Програмни езици за изкуствен интелект, 
    Техника, С., 1989.
  •  Тодорова М., Езици за функционално и логическо програмиране, 1 и 2 част, София, 
    1995.
  •  Hogger C., Essentials of Logic Programming, Clarendor Press, Oxford, 1990.
  •  Клоксин У., К. Меллиш, Программирование на Прологе, М., Мир, 1987.
  •  Филд А., П. Харрисон, Функциональное программирование, Изд. Мир, М., 1993.
  •  Хендерсон П., Функциональное программирование. Применение и реализации, М., 
    Мир, 1983.
Актуално
Още новини
Архив на новините
© 2009 ФМИ