Полски запис

от Уикипедия, свободната енциклопедия

Полският запис, още префиксен запис, е форма на логически, аритметичен и алгебричен запис (нотация), разработен от полския математик Ян Лукашевич около 1920 година с цел улесняване на съждителното смятане. Негова отличителна черта е, че операторите се поставят пред (вляво от) операндите и четенето (оценяването) на израза се извършва от ляво надясно. При известна фиксирана „арност“ (брой операнди, аргументи) на операторите, полският запис позволява да се избегне употребата на скоби за означаване на приоритета, без това да наруши неговата еднозначност.

Въпреки че е очевидно, важно е да се отбележи, че при бинарни оператори броя на операндите в израза трябва да е равен на броя на операторите плюс един, понеже в противен случай изразът няма да има смисъл и да може да се оцени.

Пример от логиката[редактиране | редактиране на кода]

Np отрицание ¬p
Kpq конюнкция p ∧ q
Apq дизюнкция p ∨ q
Cpq импликация p → q
Epq еквивалентност p ↔ q

Пример от аритметиката[редактиране | редактиране на кода]

Изразът, с който се събират числата едно и две в префиксен запис е + 1 2, вместо традиционния инфиксен запис 1 + 2. В по-сложни изрази, операторите продължават да предхождат съответните си операнди, но операндите сами по себе си могат да бъдат нетривиални изрази, съдържащи на свой ред оператори. Например, изразът, който в конвенционалния инфиксен запис би представлявал

(5 − 6) * 7

в полски запис ще изглежда така:

*(− 5 6) 7

или, още по-просто,

* − 5 6 7

Тъй като простите аритметични оператори са все бинарни, всяко тяхно префиксно представяне следователно е еднозначно и скобите могат да се пропуснат. В първоначалния инфиксен запис скобите са необходими, понеже премахването им

5 − 6 * 7

би променило смисъла на израза, поради съществуващия приоритет на операциите, според който умножението се изпълнява с приоритет пред изваждането. При такъв инфиксен запис, съответстващият му префиксен запис е:

− 5 * 6 7

Обработката на операцията изваждане е отложена дотогава, докато и двата ѝ операнда се оценят и придобият крайни числови стойности, т.е. докато се изпълни операцията умножение. Както при всяка математическа нотация, най-вътрешните изрази се оценяват най-първо; при полския запис този приоритет се изразява чрез последователността на операторите и операндите, вместо чрез скоби.

Вижте също[редактиране | редактиране на кода]