Функциональное программирование: Учеб. пособие.
Год выпуска: 2003
Автор: Шалимов П.Ю.
Жанр: учебник
Издательство: БГТУ
ISBN: 5-89838-112-0
Формат: DjVu
Качество: Отсканированные страницы + OCR, 600 Dpi
Количество страниц: 160
Описание: Рассмотрены вопросы функционального стиля программирования с позиций декларативного подхода, позволяющего повысить интеллектуальность разрабатываемых программ по сравнению с традиционным программированием. В качестве базового языка рассматривается функциональный язык Лисп. Изложение сопровождается многочисленными примерами конкретных программ. Учебное пособие предназначено для студентов всех форм обучения и дополнительного образования по специальности 220400 «Программное обеспечение вычислительной техники и автоматизированных систем», специальности 351500 «Математическое обеспечение и администрирование информационных систем».
Введение:
скрытый текст
Программирование у большинства людей ассоциируется с
понятием алгоритма, последовательности действий по достижению
результата. Однако это относится к традиционному,
императивному программированию. Наряду с ним существует другой подход к
разработке программ, называемый декларативным
программированием, при котором понятие алгоритма отступает на задний план. В
декларативном программировании от программиста требуется
описывать не последовательность действий для нахождения
результата, а Свойства требуемого результата. Считается, что такой подход
больше соответствует человеческому мышлению.
Декларативное программирование на протяжении нескольких
десятков лет привлекало людей различных категорий, имеющих
отношение к разработке программного обеспечения. Это
определялось следующими присущими декларативным языкам
особенностями:
• выразительностью (программы на декларативных языках
оказываются короче императивных программ, выполняющих
аналогичные действия);
• ориентированностью на присущий человеку образ мышления
(декларативные программы представляют набор предложений,
описывающих конкретные свойства требуемого решения);
• параллелизмом (декларативное программирование дает
предпосылки к реализации на параллельных ЭВМ).
При этом под декларативным программированием понимается
программирование на языках функционального или логического
программирования. Термин «декларативное программирование»
используется только для обозначения определенной группы на
классификационном дереве языков и стилей программирования.
Реализуется декларативное программирование средствами двух
основных стилей, определяемых как функциональное и логическое
программирование, каждый из которых в определенной степени
соответствует основным положениям декларативного
программирования.
Функциональное и логическое программирование на
протяжении десятилетий использовались для решения задач
искусственного интеллекта, принимались в качестве базовых архитектур при
разработке ЭВМ пятого поколения. В настоящее время
функциональное и логическое программирование базируются на строгой
математической основе, имеют широкий набор программных
инструментов, используемых для решения широкого круга задач,
связанных в основном с проблемами искусственного интеллекта и
символьными вычислениями.
Декларативное программирование, которое можно назвать
«подходом с позиций человека», в отличие от императивного
подхода к разработке программ, который можно назвать «подходом с
позиций компьютера», имеет значение и с точки зрения новаций,
привнесенных в программирование. Достаточно сказать, что только
с функциональным языком программирования Лисп связаны
многие нововведения, ставшие впоследствии привычными:
многооконный графический интерфейс и полноэкранные редакторы,
символические отладчики и инспекторы данных, диалоговые системы
программирования. Самое главное новшество, которое сейчас
вводится во все большее число систем программирования, начиная с
Java, - автоматическое управление памятью и "уборка мусора". То
же самое можно сказать и о многих других функциональных
языках программирования ML, Miranda, Haskell.
Изучение декларативного пбдхода к разработке программных
инструментов решения практических задач позволит сформировать
полноценное «программистское мировоззрение», на основе
которого появится возможность решения практически любых задач
приложении и активной позиции в области теоретических
исследований и разработок.