АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Пример 6.1

Читайте также:
  1. II.Примерная тематика курсовых работ
  2. SWОT – анализ - пример
  3. Анализ реализации функций системы самоменеджмента на предприятии (на примере ООО «ХХХ»)
  4. Анализ рынка недвижимости на примере многоквартирного жилья в г Пермь
  5. Аналогичный ему по строению дикаин, примерно в 10 раз активнее кокаина. Сейчас широко применяются более сложные по структуре соединения (например, анилид тримекаин).
  6. В качестве примера рассмотрим один клинический случай.
  7. В Трудовом кодексе найдите примеры (не менее 10), иллюстрирующие реализацию принципов трудового права. Подберите решения Конституционного суда РФ, основанные на этих принципах.
  8. Величины всех парциальных давлений р и барометрического давления В в формулах (51-52) должны иметь одинаковую размерность (например бар или Па).
  9. Включите в каждую колонку таблицы по 2-3 собственных примера. Ответ аргументируйте.
  10. Второй пример.
  11. Входные данные примерной, авторской программы.
  12. Глава II. Пример взаимоотношений человека и группы в туристском предприятии «Стар-Тревел»

В заключении раздела рассмотрим пример перевода в ПОЛИЗ фрагмента программы, включающего условный оператор:

IF (x<y) AND (a< >0) THEN b:=a+b*c ELSE b:=(a+b)*c; x:=a*b+c*d;

Ниже приведена строка ПОЛИЗа для этого оператора, где над символами указаны номера их позиций в полученной строке:

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

xy< a0< >AND 19 УПЛ b a b c * +:= 26 БП b a b + c *:= x a b * c d * +:=

ž

Интерпретация ПОЛИЗа

 

С помощью стека арифметическое выражение в ПОЛИЗе может быть вычислено за один просмотр слева направо. В стеке будут находиться все операнды, которые встретились при просмотре строки ПОЛИЗа или получились в результате выполнения некоторых операций, но еще не использовались в вычислениях. Алгоритм обработки строки ПОЛИЗа состоит в следующем:

 

1). Если сканируемый символ идентификатор или константа, то соответствующее им значение заносится в стек и осуществляется переход к следующему символу строки ПОЛИЗа. Это соответствует использованию правила

 

<:операнд>::=идентификаторôконстанта

2). Если сканируемый символ унарный оператор, то он применяется к верхнему операнду в стеке, который затем заменяется на полученный результат. С точки зрения семантики это соответствует применению правила

 

<:операнд>::= <операнд><оператор>.

 

3). Если сканируемый символ бинарный арифметический или логический оператор, то он применяется к двум верхним операндам в стеке, и затем они заменяются на полученный результат. Это соответствует использованию правила

 

<:операнд>::= <операнд><операнд><оператор>.

 

Одно из исключений – бинарный оператор присваивания, который в ПОЛИЗе имеет вид <пер><выр>:=. После его выполнения и <пер>, и <выр> должны быть исключены из стека, так как оператор ‘ := ’не имеет результирующего значения. При этом в стеке должно находится не значение <пер>, а ее адрес, так как значение <выр> должно сохраняться по адресу <пер>.

 

4). Бинарный оператор УПЛ, операндами которого является уже вычисленное значение логического выражения <выр> и номер символа строки ПОЛИЗа – <m>, также удаляет оба операнда из стека и не формирует в нем результата. Его действие состоит в том, что он анализирует значение выражения и если оно равно 1 (истинно), то следующим сканируется символ, расположенный сразу за УПЛ. Если же значение выражения – 0 (ложно), то мы перемещаемся по строке ПОЛИЗа к символу, позиция которого указана в операнде <m>.

 

5). Унарный оператор БП, удаляя свой параметр, – номер символа < n > из стека, просто переводит сканирование к указанной позиции ПОЛИЗа.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)