оператор присвоювання

в полізім буде записаний як

Оператор переходу в термінах полізім означає, що процес інтерпретації треба продовжити з того елемента полізім, який вказаний як операнд операції переходу.

Щоб можна було посилатися на елементи полізім, будемо вважати, що всі вони пронумеровані, починаючи з 1 (припустимо, занесені в послідовні елементи одновимірного масиву).

Нехай полізім оператора, позначеного міткою L, починається з номера p, тоді оператор переходу goto L в полізім можна записати як

де. - операція вибору елемента полізім, номер якого дорівнює p.

Трохи складніше виявиться запис в полізім умовних операторів і операторів циклу.

Введемо допоміжну операцію - умовний перехід "по брехні" з семантикою

if (not B) then goto L

Це двомісна операція в операндами B і L. Позначимо її! F, тоді в полізім вона буде записана як

де p - номер елемента, з якого починається полізім оператора, позначеного міткою L.

Семантика умовного оператора

з використанням введеної операції може бути описана так:

Тоді полізім умовного оператора буде таким:

де pi - номер елемента, з якого починається полізім оператора, позначеного міткою Li. i = 2,3.

Семантика оператора циклу while Bdo Sможет бути описана так:

Тоді полізім оператора циклу while буде таким:

де pi - номер елемента, з якого починається полізім оператора, позначеного міткою Li. i = 0,1.

Оператори введення і виведення М-мови є одномісними операціями. Нехай R - позначення операції введення, W - позначення операції виведення.

Тоді оператор введення read (I) в полізім буде записаний як I R;

оператор виведення write (E) - як E W.

Постфіксний польський запис операторів має всі властивості, характерними для постфіксной польської записи виразів, тому алгоритм інтерпретації виразів придатний для інтерпретації всієї програми, записаної на полізім (потрібно тільки розширити набір операцій, крім того, виконання деяких з них не буде давати результату, що записується в стек ).

Постфіксний польський запис може використовуватися не тільки для інтерпретації проміжної програми, але і для генерації по ній об'єктної програми. Для цього в алгоритмі інтерпретації замість виконання операції потрібно генерувати відповідні команди об'єктної програми.

Схожі статті