В.Н. Пильщиков - Язык Плэнер, страница 2
Описание файла
DJVU-файл из архива "В.Н. Пильщиков - Язык Плэнер", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 2 - страница
Автор выражает свою благодарность В. М. 10фа и М. 10. Семенову аа их полосные советы по улучшению практических свойств яаыка пленер и по его реаливации, а также В. Т. Сенину, прочитавшему рукопись книги и сделавшему ряд ценных вамечаннй, Автор особо благодарит М. 1'. Мальковского еа его бояьшую помощь на всех агапах работы. ГЛАВА ( ФУНКЦИИ 1.1. Выражении В языке пленер программы и данные строятся из одних и тех же конструкций — выражений, классификацию которых можно представить в виде такой схемы: вы1сажения ! списиовые выражения атомарные выражения ь списан Р-списни 8-списни обращения н переменным атомы ! ! числа илентианяаторы шкалы Рассмотрим подробно укааанные типы выражений.
В аасйаеит яаыка включаются любые символы, которые могут быть введены в ЭВМ. Символы алфавита подразделяются на следующие группы: оераяичитсаи: ( ) [ ) ( ) циФры: 0423456789 сиецаитерьы + —, * .! брасы: ааглавные латинские и русские буквы, прочие символы( 1 Л ) Отметим, что пробел является символом алфавита и играет важную роль при записи выражений. Выше он для большей наглядности обоаиачен енаком , однако в дальнейшем мы не будем пользоваться этим внаком, а будем просто оставлять пустой ту позицию в тексте, где должен находиться пробел.
Идемтитеииаторы представляют собой непустые последовательности любых (кроме ограничителей) символов алфавита, начинаю- щиеся с буквы. Идентификаторами также являются одиночные слецлитеры. Примеры идентификаторов: АТОМ Х15 =А+В= » т7иеяа в планере делятся на целые и еещеетеенные. Целые числа представляются точно, точно выполняются и операции над ними. Представление же вещественных чисел и выполнение операций иад ними в общем случае могут быть приближенными. Запись целого числа представляет собой непустую последовательность цифр, перед которой мощет находится анак + или — .
Например: 1983 — 9 +3000000 Запись вещественного числа состоит из знака + или †, иа цифр целой части, десятичной точки и цифр дробной части. Целая часть и точка должны присутствовать всегда, анан же н цифры дробной части можно опускать. Примеры: 2.7 1828 — 0.0000005 +6. 0.6 Шнаяы представляют собой последовательности битов (двоичных разрядов). Количество битов в шкалах предполагается фиксированным. Примером шкалы может служить следующая последовательность нулей н единиц: 0000000000000010100И100 101 ИОИ1000 Для краткости любая шкала ааписывается в яаыке не в двоичном виде, как вьппе, а в виде восьмеричного числа: каждая тройка битов шкалы аамеияется на соответетвующую восьмеричную цифру (000 — на О, 001 — на 1, 010 — на 2, ..., И1 — на 7).
Для того чтобы такую аапись шкалы можно была отличить от ааписи целых десятичных чисел, перед восьмеричными цифрами ставится». Незначащие восьмеричные нули в записи шкал можно опускать, кроме случая»0. Примеры записи шкал: «5 «3704»12345670»000012345670 Последние две записи представляют одну и ту же шкалу, двоичный вид которой указан выше. Атомы — это общее название идентификаторов, чисел к шкал; они являются простейшими выражениями языка. Обращения и леременным, Как и в других яаыках программирования, неременная в планере,— это объеат программы, имеющий фиксированное имя и значение, которое может меняться.
Именами переменных могут быть только идентификаторы,, аначениями — любые выражения. Никаких ограничений на типы принимаемых переменной аначений в яаыке не накладывается, поэто- му вначением любой переменной может быть сначала идентификатор, затем список, затем число и т. д. Во многих языках прн обращении к переменной указывается толико ее иьи. В планере же при обращении к перемевиой необходимо поставить перед ее именем один иэ следующих префиксов: » . 1.
1 » 1: Конструкция из такого префикса и имени переменной называет- ся «обращением к переменнойк Примеры обращений: .У:КОНСТ 1 'УАВ !.!)+В Для краткости мы будем, как правило, вместо словосочетания «обращение к переменной с префиксом»» употреблять термин «»-переменная», вместо еобращение к переменной с префиксом 1.» — термин «1.-переменная» и т. и, Кроме того, обращения к переменным с префиисами «м, е»» и «:» будем называть простыми обращениями к переменным, а обратцения с иными префиксами (начинающимися с восклицательного знака) — сеементными обращениями к переменнык.
Префиксы в обращениях к переменным синтаксически отличают этот тип выражений от идентификаторов. Например, Х— это сам идентификатор Х, а .Х вЂ” это обращение к переменной с именем Х. Кроме того, префиксы указывают способы использования переменных. Так, обращение .Х указывает, что нужно взять текущее аначение переменной Х, а обращение»Х — что переменной Х должно быть присвоено новое значение. Такая система обозначений очень удобна и образцах, которые игра«от важную роль в пленере, поэтому она и принята иа вооружение в языке. В планере раалнчаются переменные двух видов — локальные н глобальные. Локальные переменные существуют лишь внутри некоторого участка программы (например, внутри процедуры). При обращениях к таким переменным используются префиксы «.», «»», «1м и е!»ю Глобальные же переменные, которые в языке называются константами, существуют с момента своего определения и до завершения программы, оии доступны иа любой точки программы, Обращаться к константам можно только с помощью префиксов е:» и «1:».
Атомарные выражения. Это общее название атомов и обращений к переменным. Любое атомарное выражение рассматривается в языке как неделимая конструкция. Поэтому, например, атомы А, В и С не имеют никакого отношения к атому АВС. Синтаксически неделимо и выражение »АВ, хотя по «шыслу в нем и мошко выделить префикс и имя переменной. И Спискоеые выражения, или просто списки,— зто любые (воаможно, пустые) последовательности элементов списка, заключенные в круглые, квадратные или угловые скобки. Элементами списка могут быть любые выражения языка — как атомарные, так и списковые. Количество элементов в списке называется длиной списка.
Примеры списков: (АВС 5,2 «:.20) (РК1ХТ (А (В))] ((А)) () В первом примере укааан список из трех элементов АВС, 5.2 и и20, во втором — список иа двух элементов: идентифнкатора РК(КТ н списка (А (В)), в третьем — список из одного элемента (А), а в последнем примере — пустой список, не содержащий ни одного элемента. Длины укааанных списков соответственно равны 3, 2, 1 и О. При ааписи списков их элементы, а также элементы и снобки могут быть отделены друг от друга любым числом пробелов (несколько пробелов подряд эквивалентны одному пробелу).
Пробелы обязательны только между двумя елементамн, являющимися атомарными выражениями, во всех остальных случаях пробелы необязательны. Таким образом, записи ( 2 [А В] ) (2 1А В]) (2 (А В]) изображают один и тот же список Первая форма записи наименее экономна, а вторая — наиболее компактна. Последняя же форма записи, в которой между любыми элементаим списка ставится пробел, наиболее наглядна, ее-то мы и будем использовать в дальнейшем. В такой же форме списки всегда выводятся на печать. Отметим также, что запись любого списка, согласно определению, должна быть сбалансирована относительно скобок, поэтому в пленере записи типа )А( ((А) (А] (С (В)) недопустимы.
Списки различаются по виду скобок, которыми ограничены их элементы. Списки, составленные из одних и тех же элементов, но заключенные в равные скобки, считаются различными. Например, список (А) отличен от списка (А]. Для кратности мы будем называть списки с круглыми скобками Е-епиекаии (Ь вЂ” от наавания языка 11зр, в котором все списки принято заключать в такие скобки), списки с квадратными скобками — Р-списками (Р— от р1апвег), а списки, заключенные в уголки,— 8-списками (Я— от слова зеяшепт). 12 Для читателей, внакомых с яаыкам лисп, сообщим, что в планере никакой список, в том числе и (), не эквивалентен никакому атому, в том числе и атому Н)Ь.
Нет в планере и аналога лисповским точечным выражениям типа (А . В). Выра»гения — это общее наавание атомарных и списковых выражений, и это единственный внд конструкций, которые испольаугатся в плэнере для иаображеиия программ и данных. Отметим, что для аапиои плэнерских программ необходимы все описанные выше типы выражений, В то же время для представления данных обычно достаточно лишь атомов и списков с круглыми скобками. Именно на такое представление данных ориентирована большинство прбцедур языка. Но если нужно, то для изображения данных можно испольэовать и другие типы вырангенлй; все необходимые средства для их обработки язык предоставляет.
).2. Формы Основными компонентами плэмерских программ являются формы. Форма — это выражение, которое можно вычислить и получить в результате некоторое значение. Формы делятся на простые и сеементные. Форма называется простой, если ее значением являетоя одно выражение, и сегментной, если ее эиачение — последовательность выражений (сегмент). Тот фант, что форма ) имеет значение и, будем записывать в виде ) — и. В яаыке имеется пять типов простых форм и три типа си ментных. Ниже перечислены все эти типы и указаны правила их вычисления. Простые формы.