Студопедия


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

Польская инверсная запись




Польская инверсная запись — это постфиксная запись операций. Она была пред­ложена польским математиком Я. Лукашевичем, откуда и происходит ее название.

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

Она чрезвычайно эффективна в тех случаях, когда для вычислений использует­ся стек. Ниже будет рассмотрен алгоритм вычисления выражений в форме об­ратной польской записи с использованием стека.

Главный недостаток обратной польской записи также проистекает из метода вычисления выражений в ней: поскольку используется стек, то для работы с ним всегда доступна только верхушка стека, а это делает крайне затруднительной оптимизацию выражений в форме обратной польской записи. Практически выражения в форме обратной польской записи почти не поддаются оптимизации.

Но там, где оптимизация вычисления выражений не требуется или не имеет большого значения, обратная польская запись оказывается очень удобным методом внутреннего представления программы.

Перевод в ПОЛИЗ выражений.

ПримерДля выражения в обычной (инфиксной записи) a*(b+c)-(d-e)/f ПОЛИЗ будет иметь вид: abc+*de-f/-.

Справедливы следующие формальные определения.

ОпределениеЕсли Е является единственным операндом, то ПОЛИЗ выражения Е – это этот операнд.

ОпределениеПОЛИЗ выражения Е1 q Е2, где q - знак бинарной операции, Е1 и Е2 – операнды для q, является запись , где - ПОЛИЗ выражений Е1 и Е2 соответственно.

ОпределениеПОЛИЗ выражения , где q - знак унарной операции, а Е – операнд q, есть запись , где - ПОЛИЗ выражения Е.

ОпределениеПОЛИЗ выражения (Е) есть ПОЛИЗ выражения Е.

Перевод в ПОЛИЗ операторов.

Каждый оператор языка программирования может быть представлен как n-местная операция с семантикой, соответствующей семантике оператора.

Оператор присваивания I:=E в ПОЛИЗе записывается:

IE:=,

где «:=» - двуместная операция,

I, E – операнды операции присваивания;

I – означает, что операндом операции «:=» является адрес переменной I, а не ее значение.

ПримерОператор x:=x+9 в ПОЛИЗе имеет вид: x x 9 + :=.

Оператор переходав терминах ПОЛИЗа означает, что процесс интерпретации необходимо продолжить с того элемента ПОЛИЗа, который указан как операнд операции перехода. Чтобы можно было ссылаться на элементы ПОЛИЗа, будем считать, что все они пронумерованы, начиная с единицы (например, последовательные элементы одномерного массива). Пусть ПОЛИЗ оператора, помеченного меткой L, начинается с номера p, тогда оператору безусловного перехода goto L в ПОЛИЗе будет соответствовать:




p!, где ! – операция выбора элемента ПОЛИЗа, номер которого равен p.

Условный оператор.Введем вспомогательную операцию – условный переход «по лжи» с семантикой if (not B) then goto L. Это двуместная операция с операндами B и L. Обозначим ее !F, тогда в ПОЛИЗе она будет записываться:

B p !F, где p – номер элемента, с которого начинается ПОЛИЗ оператора, помеченного меткой L.

С использованием введенной операции условный оператор if B then S1 else S2 в ПОЛИЗе будет записываться:

B p1 !F S1p2 ! S2, где p1 – номер элемента, с которого начинается ПОЛИЗ оператора S2, а p1 – оператора, следующего за условным оператором.

ПримерПОЛИЗ оператора if x>0 then x:=x+8 else x:=x-3 представлен в таблице 4.3

Таблица 4.3 – ПОЛИЗ оператора if

лексема x > !F x x + := ! x x - :=
номер

Оператор цикла.С учетом введенных операций оператор цикла while B do S в ПОЛИЗе будет записываться:

B p1 !F S po !, где po – номер элемента, с которого начинается ПОЛИЗ выражения B, а p1 – оператора, следующего за данным оператором цикла.



Операторы ввода и выводаязыка М одноместные. Пусть R – обозначение операции ввода, а W – обозначение операции вывода, тогда оператор read(I) в ПОЛИЗе запишется как I R, а оператор write(E) – E W.

Составной оператор begin S1; S2;...; Sn end в ПОЛИЗе записывается как S1 S2... Sn.

ПримерПОЛИЗ оператора while n>3 do begin write(n*n-1); n:=n-1 end представлен в таблице 4.4

Таблица 4.4 – ПОЛИЗ оператора while

лексема n > !F n n * - W n n - := !
номер




Дата добавления: 2015-02-18; просмотров: 1649; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Как то на паре, один преподаватель сказал, когда лекция заканчивалась - это был конец пары: "Что-то тут концом пахнет". 8334 - | 7954 - или читать все...

Читайте также:

  1. Eh - Запись символа на экран в стиле TTY
  2. End Sub. Здесь можно редактировать любую запись в таблице «Товары»
  3. End Sub. Отредактировать в таблице “Товары” последнюю запись
  4. Аудио– и видеозапись
  5. Библиографическое описание методических рекомендаций и патентных документов проводится по ГОСТ 7.1 – 84 «Библиографическая запись»
  6. В окне мастера кнопок выберите действия, которое необходимо выполнить при нажатии кнопки. В области Категории выберите Переходы по записям, в области Действия – предыдущая запись
  7. Введение 3. Счета и двойная запись
  8. Верные цифры и запись приближенных чисел
  9. Вопрос 8. С какой периодичностью должна производиться запись показаний КИП о состоянии технологического процесса сушки в сменный журнал в соответствии с требованиями
  10. ГЛАВА 9. Третья запись брата Николая
  11. Двойная запись и ее значение. Бухгалтерские записи
  12. Двойная запись на счетах


 

18.208.159.25 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.003 сек.