Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы функционального программирования. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
довольно сложными построениями, спецификациями, методами тестирования, средствами интеграции программ и т.п. Жесткость требований к эффективности и надежности удовлетворяется разработкой профессионального инструментария, использующего сложные ассоциативно семантические эвристики наряду с методами синтаксически-управляемого конструирования и генерации программ. Бесспорный потенциал такого инструментария на практике ограничен трудоемкостью освоения — возникает квалификационный ценз [15].
Высокопроизводительное программирование нацелено на достижение предельно возможных характеристик при решении особо важных задач. Естественный резерв производительности компьютеров — параллельные процессы . Их организация требует детального учета временных отношений и неимперативного стиля управления действиями. Суперкомпьютеры, поддерживающие высокопроизводительные вычисления, потребовали особой техники системного программирования . Графово-сетевой подход к представлению систем и процессов для параллельных архитектур получил выражение в специализированных языках параллельного программирования и суперкомпиляторах, приспособленных для отображения абстрактной иерархии процессов уровня задач на конкретную пространственную структуру процессоров реального оборудования [11], [16].
Логическое программирование возникло как упрощение функционального программирования для математиков и лингвистов, решающих задачи символьной обработки. Особенно привлекательна возможность в качестве понятийной основы использовать недетерминизм, освобождающий от преждевременных упорядочений при программировании обработки формул. Продукционный стиль порождения процессов с возвратами обладает достаточной естественностью для лингвистического подхода к уточнению формализованных знаний экспертами, снижает стартовый барьер [10].
Трансформационное программирование методологически объединило технику оптимизации программ, макрогенерации и частичных вычислений. Центральное понятие в этой области — эквивалентность информации. Она проявляется в определении преобразований программ и процессов, в поиске критериев применимости
Основы функционального программированияЛ.В. Городняя
241
преобразований, в выборе стратегии их использования. Смешанные вычисления, отложенные действия, "ленивое" программирование, задержанные процессы и т.п. используются как методы повышения эффективности информационной обработки при некоторых дополнительно выявляемых условиях [9].
Экстенсивные подходы к программированию — естественная реакция на радикальное улучшение эксплуатационных характеристик оборудования и компьютерных сетей. Происходит переход вычислительных средств из класса технических инструментов в класс бытовых приборов. Появилась почва для обновления подходов к программированию, а также возможность реабилитации старых идей, слабо развивавшихся из-за низкой технологичности и производительности ЭВМ. Представляет интерес формирование исследовательского , эволюционного, когнитивного и адаптационного подходов к программированию, создающих перспективу рационального освоения реальных информационных ресурсов и компьютерного потенциала.
Исследовательский подход с учебно-игровым стилем профессионального, обучающего и любительского программирования может дать импульс поисковой изобретательности в совершенствовании технологии программирования, не справившейся с кризисными явлениями на прежней элементной базе. Эволюционный подход с мобильным стилем уточнения программ достаточно явно просматривается в концепции объектно-ориентированного программирования, постепенно перерастающего в субъектно­ориентированное и даже эго-ориентированное программирование. Повторное использование определений и наследование свойств объектов могут удлинить жизненный цикл отлаживаемых информационных обстановок, повысить надежность их функционирования и простоту применения. Когнитивный подход с интероперабельным стилем визуально-интерфейсной разработки открытых систем и использование новых аудио-видео средств и нестандартных устройств открывают пути активизации восприятия сложной информации и упрощения ее адекватной обработки. Адаптационный подход с эргономичным стилем индивидуализируемого конструирования персонифицированных информационных систем предоставляет информатикам возможность
Основы функционального программированияЛ.В. Городняя
242
грамотного программирования, организации и обеспечения технологических процессов реального времени, чувствительных к человеческому фактору.
Направление развития парадигмы программирования отражает изменение круга лиц, заинтересованных в развитии и применении информационных систем. Многие важные для практики программирования понятия, такие как события, исключения и ошибки, потенциал, иерархия и ортогональность построений, экстраполяция и точки роста программ, измерение качества и т.д. не достигли достаточного уровня абстрагирования и формализации. Это позволяет прогнозировать развитие парадигм программирования и выбирать учебный материал на перспективу компонентного программирования (COM/DCOM, Corba, UML и др.). Если традиционные средства и методы выделения многократно используемых компонентов подчинялись критерию модульности, понимаемой как оптимальный выбор минимального сопряжения при максимальной функциональности, то современная элементная база допускает оперирование поликонтактными узлами, выполняющими простые операции.
Парадигма программирования в образовательном процессе является инструментом формирования профессионального поведения. Программирование прошло путь от профессиональной деятельности высококвалифицированной элиты технических специалистов и научных работников до времяпрепровождения активной части цивилизованного общества. Освоение информационных систем через понимание с целью компетентных действий и ответственного применения техники сменилось интуитивными навыками хаотичного воздействия на информационную среду со скромной надеждой на везение, без претензий на знание. Обслуживание центров коллективного пользования, профессиональная поддержка целостности информации и подготовки данных почти полностью отступили перед самообслуживанием персональных компьютеров, независимым функционированием сетей и разнородных серверов со взаимодействием различных коммуникаций.
Противопоставление разрабатываемых программ, обрабатываемых данных и управления заданиями уступает представлению об
Основы функционального программированияЛ.В. Городняя
243
интерфейсах, приспособленных для участия в информационных потоках подобно навигации. Прежние критерии качества: скорость, экономия памяти и надежность обработки информации — все больше заслоняются игровой привлекательностью и широтой доступа к мировым информационным ресурсам. Замкнутые программные комплексы с известными гарантиями качества и надежности форсированно вытесняются открытыми информационными комплектами с непредсказуемым развитием состава, способов хранения и обработки информации.
Эти симптомы обновления парадигмы программирования определяют направление изменений, происходящих в системе базовых понятий, в концепции информации и информатики. Тенденция использования интерпретаторов (точнее неполной компиляции) вместо компиляторов, анонсированная в концепции языка Java в сравнении с Си, и соблазн объектно-ориентированного программирования на фоне общепринятого императивно - процедурного стиля программирования можно рассматривать как неявное движение к функциональному стилю
[2]. Моделирующая сила функциональных формул достаточна для
полноценного представления разных парадигм , что позволяет на их основе экстраполировать приобретение практических навыков организации информационных процессов на будущее.
Основы функционального программированияЛ.В. Городняя
244

Список литературы

1. McCarthy J., LISP 1.5 Programming Mannual
2. Гилдер Дж., Программное обеспечение: переворот грядет.
3. П.Хендерсон., Функциональное программирование. Применение и реализация.
4. А.Филд, П.Харрисон, Функциональное программирование
5. Скотт Д., Теория решеток, типы данных и семантика
6. Хьювенен Э., Сеппанен Й., Мир Лиспа., т.1,2,
7. Graham P., ANSI Common Lisp
8. Оллонгрен А., Определение языков программирования интерпретирующими автоматами.
9. Ершов А.П., Смешанные вычисления: потенциальные применения и проблемы исследования. — Тезисы докладов и сообщений. Всесоюзная конференция «Методы математической логики в проблемах искусственного интеллекта и систематическое программирование», ч.2
10. Малпас Дж., Реляционный язык Пролог и его применение.
11. Cann D.C., SISAL 1.2 : A Brief Introduction and Tutorial.
12. Левин Д. Я., Язык сверх высокого уровня Сетл и его реализация (для БЭСМ-6)
13. Knoop J., Optimal Interprocedural Program Optimization. A New Framework aand Its Application.
14. Weinberg G.M., The Psychology of Computer Programming
15. Поттосин И.В., Система СОКРАТ: Окружение программирования для встроенных систем
16. Евстигнеев В.А., Касьянов В.Н., Графы в программировании: обработка, визуализация и применение
17. В.Е.Котов, В.К.Сабельфельд, Теория схем программ
18. Дейкстра Э., Дисциплина программирования
19. Мальцев А.И., Алгоритмы и рекурсивные функции
20. Backus J., Can programming be liberated from the von Neumann style? A functional stile and its algebra of programs.
21. Ritchie D.M., Tompson K., The UNIX Time-Sharing System
22. Фуксман А.П., Технические аспекты создания программных систем
23. Лавров С.С., Использование вычислительной техники, программирование и искусственный интеллект (перспективы развития)
24. Лавров С.С., Силагадзе Г.С., Входной язык и интерпретатор системы программирования на базе языка Лисп для машины БЭСМ-6
25. Городняя Л.В., Реализация Лисп-интерпретатора. ВЦ СО РАН СССР
26. Лавров С.С., Гончарова Л.И., Автоматическая обработка данных. Хранение информации в памяти ЭВМ
27. Вирбицкайте И.Б., Семантические модели в теории параллелизма
28. Лавров С.С., Лекции по теории программирования. Учебное пособие
29. Ахо А.В., Хопкрофт Дж.Э., Ульман Дж.Д., Структуры данных и алгоритмы
30. Hudak P. Conseption,, Evolution and Application of Functional Languages
31. Личный сайт Дж. Мак-Карти с текстами его публикаций, URL: http://www­formal.stanford.edu/jmc/
Основы функционального программированияЛ.В. Городняя
245
32. сайт ассоциации любителей Лиспа, URL: http://www.lisp.org/
33. Дистанционный учебник М.Н. .Морозова, URL: http://www.marstu.mari.ru/mmlab/home/lisp/title.htm
34. Небольшой учебник для начального знакомства с Лиспом, URL: http://grimpeur.tamu.edu/~colin/lp/
35. Интересные материалы по Clisp Паула Грэхема, автора книги по стандарту ANSI Clisp, URL: http://www.paulgraham.com/onlisptext.html
36. сайт по языку CMUCL – особо эффективная реализация Лиспа, URL: http://www.cons.org/cmucl/
37. Материалы по грамотному программированию (Д.Кнут), URL: http://www.literateprogramming.com
38. подробное руководство по языку Lisp для начинающих, URL: http://www.psg.com/~dlamkins/sl/contents.html
39. материалы по функциональному программированию и сфере его применения, URL: http://www.franz.com/
40. коллекция очень интересных материалов для любознательных и дотошных, URL: http://www.cliki.net/index
41. Учебник по функциональному программированию со ссылками на большое число разнообразных языков программирования, URL: http://www.cl.cam.ac.uk/Teaching/Lectures/funprog-jrh-1996/index.html
Основы функционального программированияЛ.В. Городняя
246
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]