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

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

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

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

Для втого она определяет тип оператора и выполняет сама (для оператора вывода и условного оператора) или с помощью других функций (для операторов перехода и присваивания) действия данного оператора. Если оператор ваписан неправильно, выдается сообщение аб ошибке и интерпретация всей программы прекращается.

[ВЕР1ХЕ СОТО (ЬАМВОА (Ь) [РКОС (В ОР Е) [СОХО ([ХОТ [1В .Ц] [ЕВВ 4 .Ц) ([1Б (!»В (.1: !»ОР) !»Е) .РВОС] [ЯЕТ ОРЯ [ВЕЕТ [ЬЕХСТН .В] .РКОС] ] ) (Т [ЕВВ 5 .Ц)] ])] Функция СОТО интерпретирует оператор перехода. Она находит в списке РВОС всех операторов интерпретируемой программы оператор, помеченный меткой Ь, и присваивает переменкой ОРБ список операторов, начиная с найденного (переменные РКОС и ОРБ являются внепшими по отношению к функции СОТО и берутся из фушщии 1ХТЕВР).

Тем самым наследующем шаге интерпретации именно втот оператор и будет выбран функцией 1ХТЕВР для выполнения. Если в операторе перехода в качестве метки указан не идентификатор или если указанной меткой не помечен ни один оператор программы, то выдается сообщение об ошибке, после чего интерпретация программы прекращается.. [СЕР!ХЕ ЕЧВ001. (ЬАМВОА (В) [РВОС (Е1 Е2) [СОХО ([1Б (!»Е! = !»Е2) .В] [ЕО [ЕУЕХР .Е(] [ЕУЕХР .Е2]]) ([1Б (!»Е! чь!»Е2) .В] [ХЕ!] [ЕЧЕХР .Е1] [ЕЧЕХР .Е2]]) (Т [ЕКВ 6 .В])] ])] Функция ЕЧВООЬ вычисляет условия в условных операторах. [ОЕР1ХЕ ЕУЕХР (ЬАМВОА (Е) [РВОС (Х) [СОХО ([1Я (»Е),Е] [СОХО ([Х!)М .Е] .Е) (Т [СЕТЧА1 .Е] ) ] ) ([АХО [1Б (»Е + «Х) .Е] [ХСМ .Х]] [+ [СЕТЧАЬ .Е) .Х]) (Т [ЕВВ 7 .Е])] ])] Функция ЕЧЕХР вычисляет значения выражений интерпретируемой программы.

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

[ПЕР)ХЕ ОЕТЧАЬ (ЬАМВПА (Ч) [РВОО (Б ЧАЬ) [СОХО ([ХОТ [1П .Ч]] [ЕВВ 2 .Ч]) ([13 (!»Б ( Ч»ЧАЬ) !«3) .А1! [СОХО (ЧАЬ) (Т [ЕВВ 9 .Ч])]) (Т [ЕВВ 8 Ч])] ])] [ПЕР1ХЕ РПТЧАЬ'(ЬАМВПА (Ч ЧАЬ) [РВОО (В Е Х) [СОХО ([ХОТ [1П .Ч]] [ЕВВ 2 Ч]) ([13 (!»В ( Ч «Х) !»Е) .АЬ] [БЕТ А1, (ЬВ ( Ч .ЧАЬ) !.Е)]) (Т [ЕВВ 8 Ч])] ])] И, нжгонец, последняя функция интерпретатора — зто функция ЕВВ, которая реагирует на ошибки, встретившиеся в интерпретируемой программе.,Данная функция по номеру ошибки выдает на печать название ошибки и фрагмент программы, вкотором была обнаружена ошибка, после чего осущеотвляет выход из функции 1ХТЕВР (со вначением АВЕХП), т е. прекращает работу интерпретатора. [ПЕР1ХЕ ЕВВ (ЬАМВПА (Х Р) [00 [МРВ1ХТ СХ:ЕВВОВБ>: (.Р] [ЕХ1Т АВЕХП 1ХТЕВР]])] Названия-ошибок перечислены в списке, являющемся значением константы ЕВВОВБ.

Определение этой константы также входит в описание интерпретатора. [СБЕТ ЕВВОВБ ((НЕТ ОПИСАНИЯ) (ИМЯ ПЕРЕМЕННОИ вЂ” НЕ ИДЕНТИФИКАТОР) (НЕПРАВИЛЬНЫИ ОПЕРАТОР) (МЕТКА — НЕ ИДЕНТИФИКАТОР) (НЕОПИСАННАЯ МЕТКА) (НЕПРАВИЛЬНОЕ УСЛОВИЕ) (НЕПРАВИЛЬНОЕ ВЫРАЯ(ЕНИЕ) (НЕОПИСАННАЯ ПЕРЕМЕННАЯ) (ПЕРЕМЕННАЯ ВЕЗ ЗНАЧЕНИЯ))] Запуск интерпретатора осуществляется обращением; [1НТЕВР ртсб] где ртсб — программа, которую надо провнтерпретировать. 2.5.

Сопоетанители Хотя рассмотренные в предыдущих параграфах образцы и предоставляют польэователю весьма богатые воэможности для аналнэа данных, во многих случаях их все же недостаточно. Например, нельэя построить обрааец, с помоптью которого можно было бы проверить, нвляется ли анализируемое выражение Е списком, первый элемент которого — атом (любой). Правда, такой аналиа можно провести, испольэуя обраэцы и функции: [АР]В [1Б [»Х 1»У) .Е] [АТОМ .Х)] однако с помощью только одних обраацов атот анализ провести пельэя. Введение в яэык сопоставителей как раэ и обусловлено стремлением расширить воэможности обраэцов так, чтобы в виде обраэцов можно было описать любое правило аналиэа данных.

Соиостаеители — это особый класс процедур, обращаться к которым можно только в образцах. Синтаксически обращения к сопоставителям записываются так же, как и обращения к функциям: простое обращение к сопостаеителю с именем б н аргументами аг задается в виде Р-списка [б а, аг .. аг] а сегментное обращение к соиостаеителю — в виде Я-списка: (б а~ аг ...

аг) Как и в случае функций, при обращении к сопоставителю раэрешается в качестве первого элемента списка-обращения укаэывать .-переменную или :-переменную. В этих ситуациях имя сопоставителя, к которому происходит обращение, аадается аначением данной переменной или константы, которое обяаано быть идентификатором. Однако в отличие от функций сопоставители не вырабатывают никаких значений.'Выполнение сопоставителя заключается в проверке, обладает лн объект, с которым он сопоставляется, определенным свойством нли нет.

При простом обращении сопоставитель сопоставляется с одним выраясением, при сегментном — с последовательностью выражений. Если проверяемое выражение или сегмент обладает нужным свойством, сопоставление этого объекта. с сопоставителем считается удачным, не обладает †неудачн, 92 Каждый сопоставитель проверяет есвоез свойство, Например, в языке имеется сопостэвитель АТОМ без аргументов, который проверяет свойство «быть атомомк Поэтому простое обращение к атому сопоставителю, т. е. образец [АТОМ], соответствует только атомам: [1Я [АТОМ] А] -з Т [1Я [АТОМ] (АЦ -~ ( ) [1Б ([АТОМ] (еХ) (А В СЦ -~ Т, Х; (В С) (Отметим, что в последнем примере использован образец, позволяющий провести анализ, о котором шла речь в начале параграфа.) Другой пример — сопоставнтель [ЫЯТ 2], который соответствует любому 1 списку из двух элементов: [1Я [ЫЯТ 2] (А ВЦ -~ Т [1Б (»Х.[ЫБТ 2]) '(А (ВЦ] -~ () Сегментный вариант обращения к этому сопоставителю соответ- ствует любому сегменту из двух элементов: [1Я (А (1.|БТ 2> Р) (А В С РЦ -~- Т В общем случае свойства, которые проверяют сопоставители, зависят от некоторых параметров.

Аргументы в обращениях к сопоставителям как раз и задают конкретные значения этих параметров. Так, сопоставитель ЫБТ в общем случае проверяет свойство «быть 1 спискомз, а его аргумент уточняет данное свойство, накладывая ограничение на длину списка. Например, образец [ЫЯТ 5] соответствует только 1 спискам из пяти алементов, а образец [В1БТ 0] — только пустому списку (). Кроме сопоставителей, проверяющих свойства, в языке есть сопоставители, которые пааволяют задавать различные комбинации обраацов. К примеру, сопоставитель АУТ, аргументами которого являготся образцы, определяет «дизъюнкцию» зтих обраацов: он соответствует любому объекту, который соответствует хотя бы одному из его аргументов-образцов. В частности, образец [АОТ () [ЫБТ 2]] соответствует как пустому списку (), так и любому 1 списку из двух элементов, а обрааец [АУТ + У(] соответствует атому +, или атому —, или атому )(.

На сопоставители распространяются все иравнла сопоставления образцов с выражениями, рассмотренные нами в предыдущих параграфах. Так, выполнение процедуры-сопоставителя может сопрововождаться побочными эффектамп; например, во время сопоставления [1Я [АОТ [АТОМ] (А еХ)] (А В)] -~- Т переменная Х получит значение В. Но как и раньше, такие побочные эффекты сохраняют свою силу только в случае удачного исхода сопоставления в целом.

Поэтому при неудачных сопоставлениях [1Я [АОТ («Х + 0) (О + «Х)] (Π— 2)] [1Я ([А[ЛТ [АТОМ] ( 1 «Х)] 1~,Х) (( 1 А) Д В)] переменная Х не изменит своего значения, хотя в процессе сопоставления ей и присваивалось (условно) эначение 0 в первом примере илп значение А во втором примере. На сопоставители распространяется и правило, которое гласит, что иэ всех возможных вариантов удачного сопоставления обраэца с выран<ением всегда рассыатривается только один (первый) вариант. Например,при сопоставлении [!Я [А()Т (А + «Х) («Х + В)] (А + В)] учитывается только вариант удачного сопоставления первого аргумента-образца со спискам (А + В), а вариант удачного сопоставления обраэца («Х + В) с этим списком уже не рассматривается.

Поэтому после сопоставления переменная Х будет иметь аначение В. И, наконец, на сопоставители распространяется правило десегментации: сегментное обращение к сопоставителю соответствует последовательности выражений тогда и только тогда, когда 1 список иэ этих элементов соответствует простому обращению к данному сопоставителю. Например, обрааец <1.1ЯТ 3> соответствует сегменту А В С, поскольку образец [1.1ЯТ 3] соответствует списку (А В С).

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

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

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

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