Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




ОПС для стандартных операторов

 

Наряду с рассмотренными типами операторов в языке программирования, как правило, имеются такие стандартные операторы, как операторы ввода и вывода. Рассмотрим пример таких операторов.

 

Пример 18. Расширим грамматику, рассмотренную в примере 17, задав операторы ввода и вывода порождающими правилами, начинающимися с нетерминала A:

A → read (aH) | write (S)

При работе анализатора, если верхний символ в магазине будет A, то при входном символе read в магазин будет копироваться последовательность: read (aH), а в дополнительный магазин: □□a□<r>. При входном символе read в магазин будет копироваться последовательность: write (S), а в дополнительный магазин: □□□<w>. Здесь <r> и <w> обозначают соответственно операции чтения входного значения с устройства ввода в переменную (возможно, с индексом) и записи значения арифметического выражения на устройство вывода. Обе такие операции при вычислении требуют в магазине одного операнда.

Так, например, по входной цепочке:

begin read(i); read(M[i]); write(M[i]*i) end

будет сгенерирована ОПС:

i <r> M i <i> <r> M i <i> i * <r>

При вычислении по этой ОПС содержимое магазина интерпретатора будет изменяться таким образом:

 

i Операция <r> – чтение (ввод)

 

M i Операция <i> – индексирование

 

M[i] Операция <r> – чтение

 

M i Операция <i> – индексирование

 

M[i] i Операция * – умножение

 

M[i]*i Операция <w> – запись (вывод)

Конец примера.


<== предыдущая страница | следующая страница ==>
ОПС для условных, циклических и составных операторов | Распределение памяти и описание переменных

Дата добавления: 2015-07-26; просмотров: 114; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.