波蘭式

在通常的表達式中,二元運算符總是置於與之相關的兩個運算對象之間,所以,這種表示法也稱為中綴表示。 中綴表示 A+B

在通常的表達式中,二元運算符總是置於與之相關的兩個運算對象之間,所以,這種表示法也稱為中綴表示。對中綴表達式的計值,並非按運算符出現的自然順序來執行其中的各個運算,而是根據算符間的優先關係來確定運算的次序,此外,還應顧及括弧規則。因此,要從中綴表達式直接產生目標代碼一般比較麻煩。
波蘭邏輯學家J.Lukasiewicz於1929年提出了另一種表示表達式的方法。按此方法,每一運算符都置於其運算對象之後,故稱為後綴表示。這種表示法的一個特點是,表達式中各個運算是按運算符出現的順序進行的,故無須使用括弧來指示運算順序,因而又稱為無括弧式。下面我們對照地給出一些表達式的兩種表示:
中綴表示 後綴表示
A+B AB+
A+B*C ABC*+
(A+B)*(C+D) AB+CD+*
從上面的例子可以看出:
(1) 在兩種表示中,運算對象出現的順序相同;
(2) 在後綴表示中,運算符按實際計算順序從左到右排列,且每一運算符總是跟在其運算對象之後。
順便提及,Lukasiewicz原來提出的是前綴表示,即把每一運算符置於其運算對象之前。例如,中綴式a+b和(a+b)/c相應的前綴表示分別為+ab和/+abc。因此,為了區分前綴和後綴表示,通常將後綴表示稱為逆波蘭表示。因前綴表示並不常用,所以有時也將後綴表示就稱為波蘭表示。

相關詞條

相關搜尋

熱門詞條

聯絡我們