Главная » Просмотр файлов » В.Н. Пильщиков - Язык Плэнер

В.Н. Пильщиков - Язык Плэнер (1156455), страница 22

Файл №1156455 В.Н. Пильщиков - Язык Плэнер (В.Н. Пильщиков - Язык Плэнер) 22 страницаВ.Н. Пильщиков - Язык Плэнер (1156455) страница 222019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

т. д. В случае успеха всех этих проверок 'сопоставление идентификатора с сопоставителем НАЯ считается удачным.'Но если хотя бы одна проверка окааалась неудачной, тогда НАЯ сразу прекращает свою работу, отменяет все побочные аффекты предыдущих проверок и сигнализирует о неудаче своего сопоставления. Пусть, к примеру, идентификатор СОНЯ имеет свойство с названием ТУРЕ и значением БНВВ, а также свойство с названием НАНО и значением 2. Тогда [1Я [НАЯ НАВЯ [ОТ 2]] СОНЯ] -~- () [1Я ([НАБ ТУРЕ Я(1ВВ НАНО «Н] (Е1ЯТ .Н)) (СОНЯ А В)] -+- Т, Н: — 2 2.7.

Определение новых сопоставптелей Для определения нового сопоставителя следует обратиться к встроенной функции ПЕР1НЕ: [ВЕР1НЕ у (КЛРРА гаг раз)]. Здесь а — идентификатор, имя определяемого сопоставителя, а список (КАРРА еаг раз) -овредеаающее выражение этого сопоставителя: элемент КАРРА указывает, что определяется соиоставнтель (а не функция или теорема), элемент еаг — это описание параиетрее сопоставителя, а простой образец рат — его тело.

Описание параметров сопостазителя задается так же, иак и описание параметров определяемой функций (см. $1.12). Если оаг — идентификатор, то это — имя единственного параметра сопоставителя. Обращаться и такому сопоставителю можно с любым числом аргументов, поторые должны быть формами, простымп илп сегментными; все ати аргументы будут вычислены и 1 список иа их значений будет присвоен параметру сопоставителя. Если еаг— идентификатор, помеченный звеадочиой, то у сопоставителя также один параметр и любое число аргументов, но в данном случае параметру присваивается 1 список из невычисленных аргументов.

И, наконец, оаг может иметь вид (о~ оз ... е ), ю ) О, где , о; — либо просто идентификаторы, либо идентификаторы, помеченные звездочкой. При обращении к такому сопоставителю надо аадавать ровно га аргументов, при атом если параметр о; не помечен, то ему присваиваетсн значение Ьго аргумента, который должен быть простой формой, а если помечен — присваивается сам ьй аргумент в том виде, как он задан в обращении. При обращении к сопоставителю, определенному пользователем, выполиязотся следующие действия.

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

Параметры сопоставителя локализуются в его теле, где они рассматризаготся как обычные переменные. Если сопоставление тела сопоставителя с анализируемым объектом удачно, то считается, что сопоставитель соответствует этому объекту, неудачно — не соответствует. Определения сопоставителей'могут быть рекурсивными. В теле сопоставителей допускаются обращения к еще не определенным процедурам, однако к моменту первого ооращения к сопоставителю все эти процедуры должны быть уже определены в программе.

Проиллюстрируем скааанноо на конкретных примерах: [ПЕР!11Е МАТОМ (КАРРА () [1(ОХ [АТОМ)))) У этого сопоставителя нет параметров, поэтому обращаться к нему надо без аргументов: [КАТОМ). Сопоставитель соответствует любым выражениям, кроме атомов. действитдльно, сопоставление образца [11ЛТОМ) с любым выраясепием сводится к сопостаэлелию тела этого сопоставителя, т.

е. образца [МОХ [АТОМ)), с этим же 105 выражением, а данному образцу соответствуют только неатомы. [ПЕР?5?Е 16 (КАРРА (М?Е МАХ) [ЫБТВ [ЕТ [6Е.М?Щ [ЕЕ.МАХ]]])] Сопоставнтель ?,6 соответствует любому списку, длина которого ие меныпе М?г? и не больше МАХ. Рассмотрим, например, сопоставление [1Б [1 6 2 5] (А В С)] Выполнение сопоставителя Ь6 начинается с того, что параметру М?г? присваивается значение 2, а параметру МАХ вЂ” значение 5. Далее осуществляется сопоставление образца [1 ?ЯТВ [ЕТ [6Е,М?Щ [1Е .МАХ]]] со списком (А В С).

Оно удачно, поэтому удачным является и сопоставление образца [?6 2 5] со списком (А В С), т. е. функция 1Я вырабатывает значение Т. [??ЕР?5?Е 605?ТА?5?Б (КАРРА («Р) (< ) [РАТ .Р] < )))] Образцу [СОЕТА?5?Я ра?] соответствуют только 1 списки, причем такие, у которых хотя бы один элемент верхнего уровня соответствует образцу рад Например: [?Б [605?ТА?5?Я [?П]] (5 6 А 2)] -«Т Действительно, аначеиием параметра Р при атом обращении к сопоставителю является выралсение [?О].

Поэтому сопоставление тела сопоставителя — образца (< ) [РАТ .Р] < >) — со списком (5 6 А 2) удачно. [ПЕР?г?Е РА?.Уг?ОНОМ (КАРРА () [АСТ () [1?ЯТ 1] [БАМЕ (Х) («Х <РА?:гг?ОНОМ) .Х)]])] Данный сопоставитель соответствует 1 спискам, у которых элементы, равноудаленные от их концов, равны.

Определение сопоставителя рекурсивно: ои соответствует либо пустому 1 списку, либо 1 списку иэ одного элемента, либо 1 списку, у которого первый и последний элементы равны, а середина соответствует этому же сопоставителю. Поэтому [1Б [РА?ХХПВОМ] (А В А)] -«Т [1Б [РА? т"г?ОНОМ] ((А + В) — С вЂ” (А + В))] -«Т [1Б [РА?УР?ПНОМ] (А В С А)! -«() Рассмотрим подробнее, как осуществляется первое из этих сопоставлений.. Параметров у сопоставителя РА?Л5???ВОМ нет, поэтому сразу иачинается сопоставление его тела с анализируемым списком: [1Я [АПТ () [ЫБТ 1] [БАМЕ (Х) («Х <РА1ЛНПВОМ> .Х)]] (А В А)] Так как первый и второй образцы иа АПТ ке соответствуют списку (А В А), с этим списком сопоставляется третий образец: 1 [1Я [БАМЕ (Х) («Х'<РА1Лг(ПНОМ> .Х)] (А В А)] Первый и последний элементы анализируемого списка равиы друг другу, поэтому данное сопоставление будет удачным, если удачно сопоставление сегментного образца <РА(ЛЕОНОМ> с сегмеитом из одного элемента В, а это сопоставление, согласно правилу десегментации, сводится к сопоставлеиию [1Б [РА1ЛНПВОМ] (В)] Снова вызывается сопоставитель РА(ЛНОВОМ, ио теперь его тело сопоставляется со списком (В): [1Я [АПТ () [11БТ 1] [БАМЕ (Х) (»Х <РА1Л1<ПВОМ> .Х)]] (В)] Поскольку список (В) соответствует второму образцу из АПТ, то это сопоставление удачно.

Следовательно, удачным является и сопоставление образца [РА(ЛЕПНОМ] со списком (В), а тем самым удаяно и наше исходное сопоставление. [ОЕР1НЕ ЕТ1 (КАРРА «АВОЯ [%НЕ11 ([ВЕ [ЕМРТУ .АВОБ]]) ([РАТ [1 .АЙОЯЦ [РАТ [РОЕМ [ЕТ1 <ВЕЯТ 1 .АВОЯ>]]])])] Данный сопоставитель аналогичен встроенному сопоставителю ЕТ. При обращеиии к нему можно задавать любое количество аргументов-образцов, список из которых присваивается параметру АВОЯ. Например, при-обращении [ЕТ1 [1НТ] [6Е 1] [ЕЕ 9]] зпачением параметра станет список ([1НТ] [6Е 1] [ЕЕ 9]). Если первый иа заданных обраацов соответствует анализируемому выражению,то ЕТ1,чтобы проверить соответствие этого выражения п остальиым образцам, строит с помощью функции РОЕМ обращение к себе с остальными аргументами-обраацами (в вашем примере — это обращеиие [ЕТ1 [6Е 1] [ЬЕ 9Ц) и получившийся образец сопоставляет с авализируемым выражением.

Если список АВОБ пуст, а это признак того, что сопоставления всех 107 исходных образцов с аналианрусмым выразкеписм оказались удачными, то сопоставление ЕТ1 с выражением завершается, согласно первой клауае условного сопоставителя 1тНЕХ, удачей. с 2.8.

Пример использования сопоставителей Чтобы продемонстрировать возможности сопостазителей, опишем анализатор выражений языка лнсп, который может служить дополнением к рассмотренной в $ 1Л9 программе, преобразующей лисповские выражения в эквивалентные планерские выражения при условии, что лисп-программа записана без ошибок. При построении анализатора мы будем исходить из следующих предположений. Рассматривать будем то же подмножество лиска, что и в $ 1Л9. На вход анализатору будет подаваться последовательность выражений, составляющих связную лисппрограмму. Считаем, что файл, где записаны ати выраязения, уже открыт и является активным файлом ввода н что функции вывода настроены па печать ва АЦПУ пли терминал. Анализатор по очереди считывает выражения лисп-программы, проверяет их и о кансдой замеченной- ошибне выдает сообщение на печать. Анализатор распознает не все ошибки; ои, например, пе может обнаруншть неправильный баланс скобок или запрещенные нами точечные выражения, так как подобные конструкции недопустимы с точки зрения синтакоиса плэнера и попросту не могут быть считапы плэнерской функцией ввода.

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

соответствующей функции, а свойство ТУРЕ указывает на класс фушщии — ЯПВК или РВПВК, прн этом все определяемые лиспфункции мы будем относить к классу ВОВК (напомним, что в нашем подмножестве лиепа все аргументы определяемых функций вызываются по значению). Для названий встроенных лиспфункций эти свойства задаются заранее, а для определяемых— при появлении в лксп-программе их описаний.

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

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

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

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