Polnische Notation (auch Präfixnotation oder Łukasiewicz-Notation genannt) ist eine klammerfreie Schreibweise für Formeln bzw. allgemein Ausdrücke, bei der der Operator vor seinen Operanden geschrieben wird:
Operator Operand1 Operand2 ... OperandN
Die Polnische Notation verdankt ihren Namen dem polnischen Mathematiker Jan Łukasiewicz, der sie in den 1920er-Jahren entwickelte (eine genauere Datierung ist wohl nicht möglich[1]). Łukasiewicz stellte die polnische Notation als kompakte und klammerfreie Schreibweise für die Aussagenlogik vor. Als Junktoren oder Konnektive verwendet er N für die Negation, K für die Konjunktion, A für die Disjunktion, C für das Konditional (oft fälschlich Implikation genannt) und E für das Bikonditional. Als Satzbuchstaben, die für beliebige Aussagen stehen, verwendet er Kleinbuchstaben. Daraus lassen sich Aussagen wie Np („es ist nicht der Fall, dass p“) oder Cpq („Wenn p, dann q“) zusammensetzen.
Łukasiewicz weist selbst darauf hin,[2] 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.
Neben einer Nische in der Logik hat die polnische Notation heute vor allem bei Computersprachen einen festen Platz. Hier ist der Operator ein Befehlswort oder die Bezeichnung der gewünschten Funktion und sind die Operanden die zugehörigen Parameter bzw. Funktionsargumente:
Befehlswort Parameter1 Parameter2 ... ParameterN
bzw.
Funktionsbezeichnung Argument1 Argument2 ... ArgumentN
Im Bereich der Mathematik werden in der üblichen Schreibweise viele Funktionen in polnischer Notation aufgeschrieben, z. B. Sinus („sin 30“) oder Logarithmus („ln 10“). Im Allgemeinen ist in der Mathematik aber eine Infix-Schreibweise üblich, bei der die Operatoren zwischen ihre Argumente geschrieben werden (z. B. „1 + 2“). Auch in der Logik dominieren heute Infix-Notationen, meist Varianten der frühen Peano-Russell-Notation.
Inhaltsverzeichnis |
Die Addition der Zahlen 21 und 43 wird in der Präfixnotation folgendermaßen dargestellt:
+ 21 43
Die Aussage „P → Q“ wird in polnischer Notation wie folgt geschrieben:
Cpq
In der gewohnten Infix-Notation benötigt der folgende Term mehrere Klammern:
(4 + 9) : (17 + 2)
Mit der Präfixnotation hingegen keine:
: + 4 9 + 17 2
Analog wird die Aussage in Peano-Russell-Notation
(P → (Q → R)) → ((P → Q) → (P → R))
zum weitaus kürzeren und übersichtlicheren
CCpCqrCCpqCpr
Neben der Funktionsschreibweise in der Mathematik, bei der in vielen Fällen der Funktionsname seinen Argumenten vorangeht (z. B. „sin 30“ oder „lg 10“) und einer Nischenposition in der Logik, in der auch heute noch von manchen Autoren polnische Notation verwendet wird, ist diese Schreibweise derzeit am prominentesten in der Informatik vertreten. So verwenden die meisten Kommandozeileninterpreter polnische Notation (z. B. „dir *.doc“ oder „ls -a /“).
In Analogie zum mathematischen Gebrauch werden in den meisten Programmiersprachen mathematische Funktionen bzw. generell Funktionsaufrufe in polnischer Notation geschrieben, dann allerdings meist mit zusätzlicher Klammerung (z. B. „sin(30)“ oder „exp(log(10))“). Programmiersprachen mit polnischer Notation sind Tcl und Lisp. Letztere wird (wie ihre Dialekte, z. B. Scheme) wegen ihrer Nähe zum Lambda-Kalkül und der damit verbundenen Funktionsschreibweise zu den Anwendungen der polnischen Notation gezählt. Der Vorteil der Klammerfreiheit geht in Lisp allerdings verloren, weil dort erstens Operatoren im Kontext nicht eindeutig von Operanden unterschieden werden können (Variablen, Funktionen als Operanden) und weil zweitens die Stelligkeit eines Operators (d. h. die Anzahl seiner Operanden) nicht eindeutig ist. Die in Lisp gewählte Lösung, eine öffnende Klammer vor den Operator und eine schließende Klammer nach seinen letzten Operanden zu setzen, wird Cambridge-Variante der Polnischen Notation genannt.
Die polnische Notation (und noch mehr die umgekehrte polnische Notation) eignet sich sehr dazu, auf einfache Weise maschinell ausgewertet zu werden. Vor allem in der Anfangszeit der elektronischen Datenverarbeitung wurde diese Schreibweise daher gerne als intermediäres Produkt von Compilern und Interpretern erzeugt bzw. verwendet, um die weitere Verarbeitung einer in benutzerfreundlicherer Schreibweise vorliegenden Eingabe für die Rechenanlage zu vereinfachen. (vgl. Literatur: Hamblin 1962)
Die Umgekehrte Polnische Notation, kurz UPN, ist eine Variante der polnischen Notation, bei der die Operatoren nicht vor, sondern nach ihren Argumenten geschrieben werden. Entsprechend wird die UPN Postfixnotation oder auch umgekehrte Präfixnotation, selten sogar Schinlop-Notation genannt.
Currying als Anwendungsbeispiel polnischer Notation
Brockhaus-1911: Polnische Sprache · Polnische Literatur · Polnische Legion
Herder-1854: Polnische Sprache und Literatur
Meyers-1905: Polnische Literatur · Polnische Sprache · Polnische Hummel · Polnische Legion
Pierer-1857: Polnische Meile · Polnische Maus · Polnische Mythologie · Polnische Wirthschaft · Polnische Sprache · Polnische Literatur · Polnische Insurrectionen · Polnische Hummel · Polnische Königswahl · Polnische Leinen · Polnische Legion