Студопедия

КАТЕГОРИИ:

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


Польская запись




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

1. ,

2. ,

3. .

Такая запись называется инфиксной.

Прямая польская запись (префиксная) – запись, когда обозначения операции записываются до операндов:

1. ,

2.

3.

Скобки при такой записи отсутствуют. Приоритет выполнения операции очевиден. Однако прямая польская запись для трансляции не используется. Используется обратная польская запись – постфиксная.

Она требует, чтобы знаки операции записывались после соответствующих операндов:

1.

2.

3.

В дальнейшем будем использовать именно эту форму.

Польской такая нотация названа в честь ее изобретателя польского математика Я.Лукасевича(1878-1956). Для обратной польской записи введено сокращение ПОЛИЗ. При записи в ПОЛИЗ операнды записываются в порядке следования в исходном выражении, а операции после своих операндов в порядке выполнения.

Примеры:

1.

2.

3.

4.

Свойства ПОЛИЗ:

1. однозначно определяется порядок выполнения операции;

2. запись имеет простую синтаксическую структуру.

Свяжем с каждым элементом ПОЛИЗ некоторый вес в соответствии со следующим правилом:

если – переменная или константа, то ,

если – знак унарной операции, то ,

если – знак бинарной операции, то ,

если – знак -местной операции, то .

Определим некоторую функцию: .

Тогда для правильного выражения справедливо .

для выражения из элементов. Выражение можно изобразить в виде дерева (семантического дерева выражений). Вершины – операции, ветви – операнды.

Наши выражения из примера 1 могут быть записаны в виде деревьев:

В виде ПОЛИЗ представляются и другие конструкции языка, а именно: переменные с индексами, указатели функции, условные выражения, циклы. Правило общее: знак операции следует непосредственно за соответствующими ему операндами. Для представления других конструкций вводятся специальные операции ПОЛИЗ. Например, чтобы описать элементы массива, вводится дополнительная операция вычисления элемента массива. Она обозначается SUBS. Ее операндом является имя массива и значение индексов. Число операндов k зависит от размерности массива n и определяется: k=n+1.

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

будет иметь вид:

Сама польская запись имеет вид:

Указатели функции - вводится дополнительная операция – CALL, имеющая переменное число операндов k, и зависящая от числа аргументов в вызванной функции k=n+1.

Вычислить

afij1+3CALL+

Перевод других конструкций требует других операторов, их рассмотрим позже.


Поделиться:

Дата добавления: 2015-01-29; просмотров: 113; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты