Главная » Просмотр файлов » globalf5-240972240972

globalf5-240972240972 (850810), страница 34

Файл №850810 globalf5-240972240972 (Основы функционального программирования) 34 страницаglobalf5-240972240972 (850810) страница 342025-05-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

Затем былавыполнена серия обобщений представления о процессах примененияфункций, т.е. осуществлена восходящая линия определенияфункционального языка.Этот процесс не всегда удовлетворителен по эффективности с разныхточек зрения. Повышение эффективности обычно требует развитияразмерностипространства,вкоторомрассматриваются232Л.В. ГородняяОсновы функционального программированияоптимизируемые понятия.1. Исследованы возможные направления развития как по вертикали,так и по горизонтали. Для этого изучены традиционные решенияпо организации структур данных и систем программирования дляподдержки функционального программирования, а также спискисвойств атомов и деструктивные функции.2. Неоднозначные функции могут рассматриваться через понятиеотношения.

При изучении идей ООП показано, что идеи этивесьма близки и легко поддерживаются базовыми средствамифункциональногопрограммирования.Достаточнолишьпродемонстрировать технику работы с классами и экземплярамиобъектов и способы определения методов их обработки.3. Рассмотрено понятие вариантов или альтернативных процессов,успешного выполнения одного из которых достаточно дляпостроения результата функции. Реализация таких процессовпотребовала уточнить определение абстрактной машины, чтобыобеспечить сохранение состояния памяти для выхода изтупиковых ситуаций.

Такое же уточнение необходимо дляобеспечения диагностичности.4. Представлены методы управления процессами вычисленияфункций и средства, обеспечивающие выбор временивыполнения отдельных шагов процесса, соответствующихконкретнымформулам.Организациятакихпроцессовобеспечивается совместным хранением данных и рецептов ихполучения, что заодно снимает требование конечностипредставления данных. Достаточно конечности рецепта.

Техникаработы с рецептами, заключающаяся в приостановке ивозобновлениипрограмм,нетребуетспециальныхреализационных механизмов.5. Функции высших порядков показаны как инструментестественной модуляризации программ, например, техникойпродолжений,достаточнойдлядостиженияподобияпредставления функций и обрабатываемых ими типов данных.Иллюстрациятакогоподобияназадачепостроениясинтаксического анализатора позволяет замкнуть изученныемеханизмы на исходный язык программирования.233Л.В.

ГородняяОсновы функционального программированияПрактические аспектыТребования к учебно-экспериментальной практике можно условноразделить на четыре группы, различающиеся по целям:элементарное знакомство с концепциями ФП;эксперименты по системному программированию на базе ФВП;моделирование изучаемых приложений средствами СФП;изучение средств СФП как практического инструмента .Первая из этих целей — знакомство — может быть достигнута науровне концептуального минимума , достаточно далекого от решениятехнических проблем.

В круге общеизвестных задач, пригодных дляпоказа изучаемых явлений, на уровне регулярной обработки небольшихтекстов.Вторая цель — эксперимент — гораздо чувствительнее кмаксимальному потенциалу реализации СФП, к ее гибкости ипереносимости.Самоприменимостьязыковфункциональногопрограммирования здесь гарантирует очевидные преимущества всравнении со стандартными и производственными языками.Третья цель — функциональное моделирование — обеспечивается какпрактичный компромисс , учитывающий разного рода обстоятельства:исторически сложившиеся стандарты, профессиональные стереотипы ижаргон, уровень квалификации заинтересованных лиц и многое другое,что порождает новые языки и их диалекты.Четвертая цель — реальный инструмент — требует методичновыбранного приемлемого баланса между уровнем изученности классарешаемых задач и уровнем организованности комплекта средств,имеющихся в СФП.Элементарный Лисп, описанный как Pure Lisp Дж.

Маккарти, идеальносоответствует цели знакомства с ФП, его базовые средства доступныпрактически в любой реализации основных диалектов Лиспа. Навыки ипонимание основ обработки структурированных данных на уровнеэлементарного Лиспа пригодятся при работе с любой СФП.234Л.В. ГородняяОсновы функционального программированияКонструирование функций средствами чистого Лиспа доставляетинтеллектуальное удовольствие, оно сродни решению математическихголоволомок.

Благодаря функциональной полноте Лиспа, изучениедругих инструментов ФП, а также основных средств проектирования ипрограммирования, можно обосновывать и понимать черезпрограммирование на Лиспе.Во всей полноте идеи функционального программированияподдержаны в проекте Lisp 1.5 , выполненном Дж. Маккарти и егоколлегами. В этом исключительно мощном языке не только реализованыосновные средства, обеспечившие практичность и результативностьфункционального программирования, но и впервые опробован целыйряд поразительно точных построений, ценных как концептуально, так иметодически и конструктивно, понимание и осмысление которыхслишкомотстаетотпрактикиприменения.Понятийнофункциональный потенциал языка Lisp 1.5 в значительной мереунаследован стандартом Common Lisp , но многие идеи пока неполучили достойного развития.

Вероятно, это дело будущего — длянового поколения системных программистов.По мере накопления опыта реализации СФП на базе Лиспа и другихязыков сформированы обширные библиотеки функций, весьмаэффективно поддерживающих обработку основных структур данных —списков, векторов, множеств, хэш-таблиц, а также строк, файлов,каталогов, гипертекстов, изображений. Существенно повысиласьрезультативность системных решений в области работы с памятью,компиляцией, манипулирования пакетами функций и классамиобъектов. Все это доступно в современных СФП, таких как GNU Clisp ,Python, Cmucl и др., основная проблема при изучении которых —слишком много всего, разбегаются глаза, трудно выбратьпервоочередное.

Хочется найти пересечение со знакомымипрограммами и воспроизвести любимые приемы в новой стилистике— естественный путь для решения задач функциональногомоделирования .С конца 70-х годов появились Лисп-процессоры , доказавшие, чтопресловутая неэффективность функционального программированияобусловлена характеристикамиоборудования, а не стилемпрограммирования. Функциональные мини-языки хорошо показали235Л.В.

ГородняяОсновы функционального программированиясебя и при решении задач аппаратного уровня. К середине 90-х годовпоявились весьма убедительные результаты [13] по динамическойоптимизациипроцессов,ибылиосуществленывысокопроизводительные схемы работы с памятью на новомоборудовании. Все это превращает СФП в практичный иперспективный инструментарий.Полученное при изучении ФП обобщенное представление о процессахвыполнения функций нацеливает на решение задач в виде определениясемейства процессов и выбор подходящего представителя семейства.Привлекая теоретико-множественный подход как обнадеживающуюаналогию,наполнениепонятийприфункциональномпрограммировании и организации его системной поддержкиосуществляется следующими преобразованиями:проекция в более удобное, простое, но не слишком бедноемножество;ортогонализация независимых вспомогательных понятий;унификация родственных понятий;распространение реализуемых действий на новые областисуществования.Посредством таких преобразований производится уточнение структурыпространства , в котором рассматривается каждое понятие.

Кромешагов расширения по горизонтали обычно происходит и реорганизацияпо вертикали — детализация и обобщение, при котором, как правило,возрастает число измерений исходного пространства, точнее, видимойего части.Такая схема подтверждается самой историей развития диалектов языкаЛисп и родственных ему языков программирования.

( Pure Lisp , Lisp 1.5, Lisp 2, Interlisp, CommonLisp, MicroLisp, MuLisp, Sail, Hope, Miranda,Scheme, ML, GNU Clisp , CLOS, Emacs, Elisp, xLisp, Vlisp, AutoLisp, Haskel,Python, Cmucl cmucl ). Не вдаваясь здесь в подробности этой истории (ееизложение заслуживает отдельного курса!), отметим лишь особенностисвободно распространяемой системы GNU Clisp , которую легальноможно использовать в качестве системы, поддерживающей ФП.Стандарт Common Lisp в сравнении с Лиспом от Маккарти имеет ряд236Л.В. ГородняяОсновы функционального программированияотличий, несколько влияющих на программотехнику.

Прежде всего, этокасается реализации списков свойств атомов. Данная структурареализована в императивном стиле, в виде таблицы с регулярным"забыванием" информации после каждого присваивания. В результатеисключено многократное связывание глобальных объектов с ихопределениями, а заодно и множественное объявление свойств атомов.Конечно, такие эффекты можно смоделировать, но это не стольгармонично. Другое отличие связано с механизмом контекстоввычисления выражений.

Стандарт при вычислении значенийпеременных по умолчанию привлекает статический контекст, иначепеременную надо объявить специальной. Третье отличие затрагиваетунификацию представления функций и обрабатываемых ими значений.При внешнем подобии — и то, и другое выглядит как круглоскобочныесписки, но реализационно это разные типы данных, и возникает нечтовроде приведения типа ( funcall ) в ситуациях вызова функций,конструируемых "на лету".

Имеются и другие, не столь явные отличия,которые пока не стоит упоминать. GNU Clisp , xLisp, Cmuclсоответствуют стандарту Common Lisp . Документация по этим СФПдоступна на сайтах любителей Лиспа и ФП, а также на многихуниверситетских сайтах.Развитие парадигм программированияЗнакомое нам из курса философии слово " парадигма " имеет винформатике и программировании узко профессиональный смысл,сближающий их с лингвистикой. Парадигма программирования какисходная концептуальная схема постановки проблем и их решенияявляется инструментом грамматического описания фактов, событий,явлений и процессов, возможно, не существующих одновременно, ноинтуитивно объединяемых в общее понятие.Каждая парадигма программирования имеет свой круг приверженцев икласс успешно решаемых задач.

Характеристики

Тип файла
PDF-файл
Размер
994,97 Kb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7045
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее