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

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

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

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

Выразительная сила Лиспа обретает новоедыхание на каждом эволюционном витке развития информационныхтехнологий. При сравнительном анализе информационных системмоделирование их семантики на Лиспе позволяет классифицироватьфункционирование по уровню сложности, зрелости, полноты, точностии организованности. Универсальность Лиспа достаточна для изученияна его основе любой парадигмы информатики и программотехники.Можно сказать, что Лисп содержит в себе эталонную семантическуюсистему, пригодную для измерения функциональности других систем.Информационный мир становится все более динамичным — Лиспприспособлен к программированию развивающихся построений иреорганизуемых конфигураций из разносортных компонентов.

Многиереализационные находки Лиспа, такие как ссылочная организацияпамяти, "сборка мусора" для повторного использования памяти,частичная компиляция программ с интерпретацией промежуточногокода, полиморфизм, длительное хранение атрибутов объектов в периодих использования и т.д. перекочевали из области исследований иэкспериментов на базе Лиспа в практику реализации операционныхсистем и систем программирования.Общеизвестно, что Лисп — язык искусственного интеллекта иисследования наукоемких и новых направлений информационнойобработки. Но этим влияние Лиспа не ограничено. Диалекты Лиспа(Logo, ML, MuLisp, Scheme, Hope, AutoLisp, CommonLisp, Reduce и др.)заняли обширную нишу в области учебно-экспериментальногопрограммирования , связанного с развитием теории программирования,системного программирования, разработки и прототипирования новыхкомпьютерных комплексов и архитектур, конструирования иисследования систем построения оптимизирующих компиляторов иорганизации особо точных и высокопроизводительных вычислений.12Л.В.

ГородняяОсновы функционального программированияМногообразие откликов на Лисп не случайно. На первый взгляд, идеиЛиспа противоречат традиционным подходам к программированию. Ноэто противоречие отступает перед строгой логикой языка, гармоничноуравновешенной полнотой и ясностью реализационных решений.Определение Лиспа дает гибкую основу для развития, варьирования ирасширения Лисп-систем средствами как самого Лиспа, так и егоокружения. Объем такого определения не превышает одной страницы.Понятийная картина Лиспа — удобный инструмент, помогающийпредставлять решения задач в оптимально универсальной форме,свободной от пресса как преждевременной конкретизации типовданных, так и избыточного обобщения алгоритмов при компиляциипрограмм.

На Лиспе решение задачи может быть выражено в терминахпостановки задачи без привлечения реализационных сущностей ивнешних интерфейсных эффектов.Базис Лиспа предельно лаконичен — атомы и структуры из простейшихбинарных узлов плюс несколько базовых функций и функционалов .Базис содержит встроенные (примитивные) функции, которыеанализируют, строят и разбирают любые структурные значения ( atom,eq, cons, car, cdr ), и встроенные специальные функции ифункционалы,которыеуправляютобработкойструктур,представляющих вычисляемые выражения ( quote, cond, lambda,label, eval ).

Над базисом строятся предельно простые формулы ввиде круглоскобочных списков, где первый элемент — функция,остальные — ее аргументы, в том числе переменные, реализуемые спомощью разных вариантов стека или ассоциативного списка. Всеостальные механизмы вычисления и преобразования формул могутсводиться к этому базису, рассматриваться как его вариант илирасширение. Такой лаконизм сродни алгебре, способствующейпроявлению общих закономерностей в работе с формулами надобъектами разной природы. Подробнее с идеями Лиспа и егоматематическими основами можно ознакомиться на страницах журнала"Компьютерные инструменты в образовании", № 2–5 за 2002 год.Синтаксис Лиспа не требует особых ресурсов для запоминанияразделителей и/или ограничителей и напряженного внимания нараспознавание синтаксических позиций в разных рамочныхконструкциях.

Универсальный разделитель — пробел, ограничители —13Л.В. ГородняяОсновы функционального программированиякруглые скобки. В скобки заключается представление функции с ееаргументами. Все остальное — вариации в зависимости от категориифункций, определенности атомов и вычислимости выражений, типовзначений и структур данных. Функционалы — это одна из категорийфункций, используемая при организации управления вычислениями.Программирование на Лисп нацелено на выделение универсальныхфункций и отображений, композиции которых строятся как формулынад значениями. При таком стиле малые программы над небольшимиобъемами данных не нуждаются в заботе о распределении памяти ипреобразовании информации по конкретным адресам. Новаяинформация размещается в свободной памяти без неявного разрушенияисходных построений.

Высокий уровень представления программ наЛиспе обеспечивает их реальное абстрагирование от оборудования ипрактическую независимость от версии реализации и даже от диалектаязыка. По современным меркам реализации Лиспа компактны и неслишком требовательны к оборудованию. Существуют свободнораспространяемые версии, занимающие менее мегабайта, пригодные кприменению на любом процессоре.В нашей стране программирование мало соприкоснулось с Лиспом, хотязнакомство с языком состоялось из первых рук. Джон Маккарти в конце1968 года познакомил Москву и Новосибирск с Лиспом, что побудило креализации отечественных версий языка. Две реализации на БЭСМ-6(ВЦ АН под рук. С. С. Лаврова [24] и ВЦ СО АН под руководством А.

П.Ершова [25]) и одна на ЕС ЭВМ (ВЦ АН под рук. С. С. Лаврова) нашлиприменение в отечественных проектах по системному и теоретическомупрограммированию, в исследованиях по математической лингвистике,искусственному интеллекту и обработке химических формул.Существовал также проект реализации на Эльбрусе (И.Н. Скопин).В настоящее время наблюдается устойчивый рост рейтингаинтерпретируемых языков программирования и включения вкомпилируемые языки механизмов символьной обработки и средствдинамического анализа, что повышает интерес к Лиспу.

Моделирующаясила Лиспа может послужить основой для очередного кругаисследованийвобластикомпонентногопрограммирования,формализации поведения информационных систем, разработки методовпреобразования и защиты информации, высокопроизводительного14Л.В. ГородняяОсновы функционального программированияпрограммирования для суперкомпьютеров, создания прототипов системдля новых применений.Лисп успешно работает на любом уровне абстрагирования информацииот ассемблера и операционной оболочки до Internet-приложений илингвистических интерфейсов, что подтверждает его звание подлинноуниверсального языка программирования, показавшего стойкуюжизнеспособность и интеллектуальную практичность в широкомспектре применений.История создания и развития языка программирования ЛИСПинтересна как социальный феномен осуществления замысла,вызвавшего серьезные возражения и математиков, и программистов, нопоказавшего удивительную живучесть.

Критика теоретиков быласвязана с так называемой "парадоксальностью" бестипового лямбдаисчисления. Практиков пугали накладные расходы на сборку мусора иинтерпретацию в сравнении с компиляцией и статическимраспределением памяти. (О наличии компилятора в традиционныхЛисп-системах вспоминали редко.)Первоначально предназначенный для символьной обработки, этот языкутвердился в качестве аналога эсперанто для задач искусственногоинтеллекта.

К середине семидесятых годов именно на Лиспе решалисьнаиболее сложные в практике программирования задачи из областидискретнойивычислительнойматематики,системного,экспериментального и теоретического программирования, лингвистики,химии, биологии, медицины и инженерного проектирования.ПримерAutoCAD — система автоматизации инженерных расчетов, дизайна икомплектации изделий из доступного конструктива.Многие созревшие на базе Лиспа решения постепенно обрелисамостоятельность и развиваются как функциональный стильпрограммирования и фреймовый подход к представлению знаний вэкспертных системах.

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

Программная поддержкатаких работ потребовала большого числа нетрадиционных решений исоглашений, основа которых предложена и опробована Дж. Маккарти сего коллегами и учениками в определении языка Лисп и в первыхреализациях Lisp 1.0 и Lisp 1.5 [1]. Наиболее общие из них:1.

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

Но исследователь вынужден вникать во всеуровни своего экспериментального полигона.2. Кроме функций-констант,переменные.вполнедопустимыфункции-Отсутствие навыков работы с функциональными переменнымиговорит лишь о том, что надо осваивать такую возможность,потенциал которой может превзойти наши ожидания теперь,когда программирование становится все более аспектно икомпонентно ориентированным. Объектно-ориентированнаяпарадигма вэтом плане не обладает достаточнойфункциональной полнотой.16Л.В. ГородняяОсновы функционального программирования3. Самоприменимость.Первые реализации Лиспа были выполнены методом раскрутки,причем в составе системы сразу были предусмотрены иинтерпретатор, и компилятор.

Оба инструмента были весьматочно описаны на самом Лиспе, причем основной объемописаний не превосходил пару страниц, что позволяло активноиспользовать эти описания при изучении языка и программ,написанных на нем. Этот эксперимент послужил базой дляопределения систем программирования с помощью такназываемой "операционной семантики", получившей развитие вработах по Венской методике определения языков и системпрограммирования [8].4. Интегральность ограничений.Если не хватает памяти, то принципиально на всю задачу, а не наотдельные блоки данных, возможно, не слишком существенныхдля ее решения.

При недостатке памяти специальная программа"мусорщик" пытается найти свободную память. Новые реализацииэтого механизма рационально учитывают преимуществавосходящих процессов на больших объемах памяти.5. Уточняемость решений.Современное применение информационных систем достаточношироко соприкасается с вариантами доступных решений,необходимостью уточнять отдельные особенности примененияготовых решений и трудоемкостью анализа и поискарационального выбора комплекта используемых средств.Реализация Лиспа обычно содержит списки свойств объектов,приспособленные к внешнему доопределению отдельныхэлементов поведения программируемой системы.6. Множественность определений.НаиболееконцептуальнополныйLisp1.5допускаетмножественные определения имен, что в рамках настраиваемойинтерпретацииобеспечиваеткромеобщеизвестногополиморфизма более общие схемы обработки ряда версий или17Л.В.

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

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

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

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