Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 19

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 19 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 192019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

описывавшей олпу из первых программ ислусственного интеллекта, програк1му (.ой)са1 Тйеопм. а также язык. на котором она могла быть реализована (Ыеттей апд 5(шоп. 1956). Язык. названный 1Р1-1 (1п1оппабоп Ргосезьйпд 1 апйиайе — язык обработки информации). никогда не был внедрен. Слелуюшая версия этого языка ! РЬ-П была реализована на компьютере )оЬпп)ас корпорации Канд Согрогаиоп. Развитие языка 1РЕ продолжалось до 1960 года. в котором было опубликовано описание языка 1Р1 -Ч (Ыеией апб Тапсе. 1960). Широкому распространению языков семейства!РЕ мешал их низкий уровень. Для гипотетического компьютера. реализо- 2.4.

Функциональное программирование: язык ЫБР ванного посредством интерпретаторов с включенными в него командами обработки списков. эти языки фактически были языками ассемблера. Первая их реализация была выполнена на ничем ие примечательной машине 3о!зпп1ас, что также не очень способствовало распространению языков семейства 1Р1.. Вкладом языков семейства!Р(.

в развитие языков программирования были их списковые структуры и наглядная демонстрация того, что обработка списков вполне возможна и полезна. Корпорация 1ВМ заинтересовалась искусственным интеллектом в середине 1950-х годов и в качестве демонстрационной области выбрала доказательство теорем. В то время полным ходом шла разработка языка ГОКТКАХ. Высокая стоимость компилятора языка ГОКТКАХ !убедила корпорацию 1ВМ в том, что обработку списков проще присоединить к языку ГОКТКАХ, чем вылелять ее в отдельный язык.

Так и возник язык ГЕТР (ГОКТКАХ Ызг Ргосеи!пз Еапйцайе — язык обработки списков на базе языка ГОКТКАХ), который был разработан и реализован в качестве расширения языка ГОКТКАХ. Язык Г).РЬ использовался лля доказательства теорем в области планиметрии, которая тогда рассматривалась как простейшая область для механического доказательства теорем. 2.4.2. Процвсс разработки языка 03Р Летом 1958 года отделом информационных исслелований корпорации 1ВМ (!ВМ 1п(огщабоп КезеагсЬ Оераггшепг) был нанят Джон Мак-Карти (1опп МсСаппу) из института М!Т.

Его целью на это лето было исследование символьных вычислений и разработка конструктивных требований для проведения подобных вычислений. В качестве пробной проблемной области он выбрал дифференцирование алгебраических выражений. При изучении этой области появился набор требований к языку. Среди них были методы управления выполнением математических функций: рекурсия и условные выражения. Язык ГОКТКАХ1, единственный существующий на то время язык высокого уровня, ни одной из этих функций не имел. Другие требования вознидли при исследовании символьного дифференцирования изакзючались в необходимости наличия связных списков, динамически размещаемых в памяти, и некоторого способа неявного удаления списков из памяти, использование которых в программе уже не предполагалось.Мак-Карти просто не мог позволить явным операторам освобождения памяти загромождать его изящный алгоритм дифференцирования.

Поскольку язык ГЕРА не поддерживал рекурсию, условные выражения, динамическое выделение памяти или неявное ее освобождение, Мак-Карти стало ясно, что нужен новый язык. Когла осенью 1958 года Мак-Карти вернулся в институт М1Т, он вместе с Марвином Мински (Магч!п М!пзку) основал проект, посвященный искусственному интеллекту, М)Т А! Рго3есг, финансировавшийся Исследовательской электротехнической лабораторией (КезеагсЫ.аЬогагогу Гог Е!ее!гоп(сз).

Первой важной работой нового проекта было создание системы обработки списков. Ее планироваяось использовать лля первоначальной реазизации предложенной Мак-Карти программы, названной Адч1се Такег. Это приложение стало стимулом к развитию языка обработки списков ЫЬР.

Первую версию этого языка иногда называют чистым языком ЫЬР, поскольку он представляет собой язык функционального программирования в чистом виле. Эволюция чистого языка 1.1$Р описывается в следующем разделе. УО Глава 2, Обзор основных языков программирования 2.4.3. Обзор языка 2.4.3.1. Структуры данных В чистом языке ).)БР сушествовато только два типа структур данных: атомы и списки. Атомы могли быть либо символами. принимавшими форму идентификаторов, либо числовыми константами. Естественно использовать для хранения снивольной информации связные списки.

что и было сделано в языке !Р(.-И. Подобные структуры позволяют вставки и улаления в любол~ месте (операции. которые тогда считазись неотьемлемой частью обработки списков). Правда, в конце концов было обнаружено. что подобное в языке Е! БР требуется очень редко. Списки определялись путем разграничения составляющих их элементов круглыми скобками. Простые списки, в которых элементы разделены на атомы, имеют слелуюшую форму: (А В С ()) Структуры со вложенными списками также опрелелялись круглыми скобками. Например, список (А (В С) 0 (В (Г 8))) состоит из четырех элементов. Первый — это атом А, второй — подсписок (В С), третий — атом (), а четвертый — полсписок (В (Г В) ), содержащий в качестве второго элемента подсписок (Г С).

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

Ссылаются на список, указывая его первый элемент. Внутренние представления двух списков. упомянутых ранее, изображены на рис. 2.2. Отметим, что элементы списка показаны горизонтально. Последний элемент списка не имеет последующего элемента, так что он связан с нулевым указателем )ч? Ь. С помощью подобной же структуры показаны подсписки. 2.4.3.2. Процессы в функциональном программировании Язык ИКР создавался как язык функционального программирования. Все вычисления в функциональной программе производятся путем применения функций к аргументам. Ни операторы присваивания, ни переменные, с избытком имеющиеся в императивных языках программирования, не нужны в программах, написанных на языках функционального программирования.

Более того, итеративные процессы могут определяться с помощью рекурсивных вызовов функций, что делает ненужными циклы. Эти основные концепции функционального программирования отличают его от программирования на императивных языках. 2А. Функциональное программирование: язык ОБР 71 в с 0 г 0 Рис. 2.2. Внутреннее нредстаазение двух списков в языке ИЯР 2.4.З.З. Синтаксис языка й1$Р Язык 1.1БР значительно отличается от императивных языков как из-за того, что он является функциональным языком, так и из-за того, что программы, написанные на этом языке, выглядят совершенно иначе, чем программы, написанные на таких языках, как РСнсТКАХ кли С. Синтаксис языка С, например.

является сложной смесью английского и алгебры, тогда как синтаксис языка 1.18Т вЂ” эталон простоты. Рассмотрим снова список (А В С В) Если интерпретировать его в терминах данных. то это — список из четырех элементов. Если же рассматривать его как программу, то это значит, что функция А применяется к трем параметрам: В, С и О. 2.4.4. Оцвнка Язык 1.1БР всецело ломинировал в сфере искусственного интеллекта четверть столетия, и все еше остается самым распространенным языком в этой области. Устранено большинство причин, создавших языку ЫБР репутацию неэффективного. Скомпилированы многие современные реализации, и результируюшие программы выполняются значительно быстрее, чем интерпретация их исхолного кода. Помимо успехов в области искусственного интеллекта, язык 1.18Р оказался пионером функционального программирования, доказавшего свою жизнеспособность в качестве области исследования языков программирования.

Как указывалось в главе!, многие исследователи языков программирования полагают, что функциональное программирование значительно лучше подходит для разработки программного обеспечения. чем использование императивных языков. На протяжении 1970-х и в начале 1980-х годов было разработано и использовано множество различных диалектов языка 1.18Р. Это привело к знакомой проблеме перено- 72 Глава 2. Обзор основных языков программирования симости. Для исправления возникшей ситуации была создана стандартная версия языка. названная СОММОХ Ь(5Р (5(ее(е. ) 984).

Подробно язык Бсбеве (диалект языка ЫБР) и функшюнальное программирование в целом рассмотрены в главе 14. Ниже следует пример программы на языке Ь)БР. г Пример функции языка Ь51Р Следующая программа определяет греликативную функцию языка Ь1БР, принимающую в качестве аргументов два списка и возвращающую значение ЕОЕ, если оса списка идентичны, и значение И1Ь (РАЬБЕ) в противном случае (ПЕРОМ ес)иа1 11ятя (11я1 11я2) (СОБР ((АТОМ 11я1) (ЕО 11я1 11я2)) ((АТОМ 11я2) И1Ь] ((ес)ца1 11ят (САП 11я1) (СА(( 11я2)) (ес)ца1 11ят (СЭР 11я1) (СО(( 11я2))) (Т (ч1( ) 2.4.5. Два потомка языка ИЗР В наше время широко используются два диалекта языка Ь(БР— язык СОММОХ Ь(БР и язык Бебеле.

Оба кратко рассмотрены в слелуюших подразделах. 2.Я.З.8. Язык Зсйепзе Язык Бсйеше был разработан в институте М)Т в середине 1970-х годов (Бцптап апб 5(ее)е, 1975). Для него характерен небольшой размер, использование исключительно статического обзора данных (рассматриваемого в главе 4). а также обработка функций как объектов первого класса. В таком качестве функции языка Бс(зете могут быть значениями выражений и элементами в списках. присваиваться переменным, передаваться в качестве параметров и возврашаться в качестве результата применения функции к своим аргументам.

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

Тип файла
DJVU-файл
Размер
9,5 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

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