Непейвода Н.Н. Программирование. Раздел 1

Непейвода Н.Н. Программирование. Страница 79

Записать по полученному адресу вычисленное значение.

Завершить вычисление присваивания.

Видно, что, определяя вычисления для присваивания, приходится предпо­лагать, что определены вычисления для каждой из ветвей: для <Адреса> и <Выражения>; таким образом, данное определение, как и большинство опре­делений в программировании, носит индуктивный (или, с операциональной точки зрения, рекурсивный) характер.

<Выражение> на уровне абстрактной синтаксической структуры — это не конструкция языка, а совокупность схем для констант и переменных, а также для сложения, вычитания, умножения и других операций. Константы и переменные являются терминальными конструкциями языка (лексемами) — для каждой такой конструкции считается известным, как извлекаются ее атрибуты, в данном случае — значения.

В качестве характерных примеров раскрытия <Выражения> на рис. 2.5 приводятся схемы задания абстрактного синтаксиса для сложения (а), вы­читания (Ь) и переменной (с). Здесь фигурными и квадратными скобками обрамлены вершины, которые в абстрактносинтаксической структуре пред­ставляют одну или более ветвь (пометка "+" у скобок), если ветви могут отсутствовать, то используется пометка "*" — см. ниже. Если представлена единственная ветвь, то это означает использование унарного плюса (<Сло­жение>) или минуса (<Вычитание>). Различие между схемами с фигурными

и квадратными скобками связано с тем, что в первом случае ветви не упо­рядочены, а во втором — упорядочены (это соответствует смыслу сложения и вычитания как арифметических операций).

Схема (с) демонстрирует две новые возможности. Вопервых, есть не од­на, а две позиции, в которых она может быть применена, причем с разным смыслом: в одном случае извлекается атрибут адрес, а в другом — значение. Соответственно, данная конструкция может быть использована для вычис­ления значения, и тогда она представляет собой один из вариантов <Выра­жения>, или для вычисления адреса, и тогда она представляет собой один из вариантов <Адреса>. Вовторых, связь между наименованием <Перемен­ная> и ветвью <Имя> изображена пунктиром, отражающим тот факт, что для абстрактного вычислителя <Переменная> является лексемой, а ее атрибут <Имя> порожден из лексемы конкретносинтаксического уровня (<имя пере­менной^, которая идентифицирует соответствующую лексему абстрактно синтаксического уровня (<Переменную>). Правила идентификации, как уже говорилось на стр. 69, не сводятся к контекстносвободным грамматикам и определяются особо. Для конструкциилексемы считается известным, как извлекаются ее атрибуты (в данном случае адрес или значение <Перемен­ной> по ее атрибуту <Имя>).

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета &quot;Ангара-А5В&quot; в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие &quot;Крокодилы&quot;

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама