Die Umgekehrte Polnische Notation (kurz UPN), auf englisch Reverse Polish Notation (kurz RPN), auch Postfixnotation genannt, ist eine von der Polnischen Notation abgeleitete Notation/Eingabelogik für die Anwendung von Operationen. Bei der umgekehrten polnischen Notation werden zunächst die Operanden eingegeben und danach der darauf anzuwendende Operator.
In der Informatik ist die UPN deshalb von Interesse, weil sie eine stapelbasierte Abarbeitung ermöglicht: Operanden werden beim Lesen einfach auf den Stapel gelegt, ein Operator holt sich die Anzahl an Operanden vom Stapel (Stack), die seiner Stelligkeit entspricht und legt das Ergebnis der Operation wieder auf dem Stapel ab. Am Ende liegt dann das Ergebnis des Terms oben auf dem Stapel. Deshalb bildet die UPN die Grundlage für stapelbasierte Programmiersprachen wie Forth, RPL, PostScript oder die Anweisungsliste im SPS-Bereich.
In der Schule ist die erlernte Notation die (sequenziell organisierende) Infix-Notation "3+4". In der umgekehrten polnischen Notation wird hingegen "3 4 +" geschrieben (zwischen 3 und 4 ist ein Leerraum, damit die Zahlen von der Zahl 34 unterschieden werden können).
Weiteres Beispiel (in der Infix-Notation): (3+4)*5. Bei der UPN können die Klammern entfallen, alle Operationen (hier "+" und "*") arbeiten mit den beiden oberen Elementen des Stack. Das Beispiel heißt in UPN dann: 3 4 + 5 * (zuerst wird die Klammer ausgerechnet 3 4+ und dann die entstandene Zahl 7 wiederum mit 5 multipliziert).
Dieses Prinzip ist auch in der deutschen Sprache zu finden:
Wie häufig auch alltagssprachlich werden erst die Dinge genannt, mit denen man etwas tun kann („Wäsche“), und danach das, was man damit macht („waschen“).
Bei Operatoren mit nur einem Operanden ist UPN auch bei (Taschen-) Rechnern sehr gebräuchlich, die sonst mit der Infix-Notation arbeiten. Beispiele dafür sind die trigonometrischen oder logarithmischen Funktionen, die bei den meisten Taschenrechnern in der Form 25 ln oder 25 sin eingegeben werden (der Operator "ln" bzw. "sin" wird nach dem Operanden "25" eingegeben).
Unter Anwendern wird häufig der Vorteil der UPN zur algebraischen Notation (Infix-Notation) diskutiert.
Die Nachteile:
Die Vorteile:
Zu rechnen ist: (1+2)*(3+4)
Im algebraischen Modus sind dann die Tasten zu drücken:
Im UPN-Modus (Enter ist eine Taste zum Trennen der Operanden):
Es sind also drei Tasten weniger zu drücken als im algebraischen Modus (bei aufwendigeren Rechnungen entsprechend mehr). Bei algebraischen Taschenrechnern können gelegentlich eine oder mehrere ")"-Tastendrücke gespart werden, da die "="-Taste auch alle Klammern schließt.
Ein weiterer Vorteil der UPN ist es, dass die Rechnung schrittweise mit sichtbaren Zwischenergebnissen ausgeführt wird. Man kann die Daten also nach und nach weiterbearbeiten. Im algebraischen Modus muss man dagegen vorher wissen was alles noch gemacht werden soll. Dies ist vor allem wichtig, wenn komplexere Berechnungen durchgeführt werden.
Mit der Komplexität der heutigen elektronischen Schaltkreise ist es irrelevant geworden, dass vergleichbare ältere Taschenrechner eine deutlich unterschiedliche Anzahl von Operandenregistern benötigten. Nahezu alle Taschenrechner mit UPN wurden mit nur 4 Operandenregistern hergestellt. Algebraische Taschenrechner dagegen wurden mit bis zu 12 Operandenregistern zu Speicherung von bis zu 11 unvollständigen Operationen hergestellt.
Łukasiewicz weist selbst darauf hin („On the history of the logic of propositions“, abgedruckt in: Łukasiewicz 1970), dass seine Schreibweise zwar die kompakteste und die erste linear geschriebene klammerfreie Schreibweise ist, aber nicht die erste klammerfreie Schreibweise überhaupt. Das Verdienst, die Logik von der Klammer befreit zu haben, kommt Gottlob Frege mit seiner bereits 1879 veröffentlichten Begriffsschriftnotation zu (siehe auch Begriffsschrift).
Der gleiche Effekt der Klammerfreiheit wird erreicht, wenn der Operator nicht vor den Operanden, sondern danach steht. Diese Variante der polnischen Notation, die als „Umgekehrte Polnische Notation“ bezeichnet wird, wurde vermutlich ebenfalls bereits von Łukasiewicz gesehen. Explizit angesprochen und praktisch verwendet wurde die umgekehrte polnische Notation allerdings wohl erst in den 1950er-Jahren vom australischen Philosophen Charles Hamblin.
Die Sinusfunktion wird dann z. B. geschrieben ( ist die Menge der reellen Zahlen, hier sind die Mengen und gleich):
Die Schreibweise oder ohne Klammern heißt Präfix-Notation oder polnische Notation. Formal kann man anstatt auch schreiben (für die Sinusfunktion dann ). Dies ist aber gerade die umgekehrte polnische Notation (Postfix-Notation), man gibt ein und wendet anschließend die Funktion auf an.
Da auch eine Funktion ist, allerdings abhängig von zwei Variablen, kann man auch schreiben als: . Hier ist die Paarmenge mit reellen Zahlen. Anstelle von (Infixnotation) wird die Funktionsschreibweise (Präfix-Notation, polnische Notation) benutzt. Nun stellt man das hinter die Klammern und erhält (Postfix-Notation, umgekehrte polnische Notation), damit auch wieder die polnische Notation, nur für zwei Variablen.
Dieser Sachverhalt kann noch auf -stellige (wobei eine natürliche Zahl sei) Funktionen/Operatoren verallgemeinert werden, wobei man dann einen -stelligen Stack verwendet.
Arithmetik | Compilerbau | Mathematische Notation
Omvendt polsk notation | Reverse Polish notation | Notación polaca inversa | Notation polonaise inverse | כתיב פולני | Notazione polacca inversa | 逆ポーランド記法 | 역폴란드 표기법 | Odwrotna notacja polska | Обратная польская запись | Obrnjen poljski zapis | Omvänd polsk notation
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Umgekehrte Polnische Notation".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world