Bläddra i källkod

Polnische Notation / Infix, Prä- und Postfixnotation

Martin Thoma 11 år sedan
förälder
incheckning
564dbc9790

+ 48 - 2
documents/Programmierparadigmen/Java-Bytecode.tex

@@ -13,8 +13,6 @@ Bytecode ist unabhängig von realer Hardware.
     und in beliebiger Reihenfolge wieder freigegeben werden können.
 \end{definition}
 
-
-
 \textit{Activation Record} ist ein \textit{Stackframe}.\index{Activation Record|see{Stackframe}}
 \section{Instruktionen}
 \begin{table}[h]
@@ -29,8 +27,56 @@ Bytecode ist unabhängig von realer Hardware.
     \end{tabular}
 \end{table}
 
+\section{Polnische Notation}
+\begin{definition}[Schreibweise von Rechenoperationen]
+    Sei $f: A \times B \rightarrow C$ eine Funktion, $a \in A$ und $b \in B$.
+
+    \begin{defenum}
+        \item Die Schreibweise $a\ f\ b$ heißt \textbf{Infix-Notation}\xindex{Infix-Notation}.
+        \item Die Schreibweise $f\ a\ b$ heißt \textbf{Präfixnotation}\xindex{Präfixnotation}
+        \item Die Schreibweise $a\ b\ f$ heißt \textbf{Postfixnotation}\xindex{Postfixnotation}.
+    \end{defenum}
+\end{definition}
+
+\textit{Polnische Notation}\index{Notation!polnische|see{Präfixnotation}} ist ein Synonym für die Präfixnotation.
+
+\textit{Umgekehrte polnische Notation}\index{Notation!umgekehrte polnische|see{Postfixnotation}} ist ein Synonym für die Postfixnotation.
+
+\begin{beispiel}[Schreibweise von Rechenoperationen]
+    \begin{bspenum}
+        \item $1 + 2$ nutzt die Infix-Notation.
+        \item $f\ a\ b$ nutzt die polnische Notation.
+        \item Wir der Ausdruck $1 + 2 \cdot 3$ in Infix-Notation ohne Operatoren-Präzedenz
+              ausgewertet, so gilt: 
+              \[1 + 2 \cdot 3 = 9\]
+              Wird er mit Operatoren-Präzendenz ausgewertet, so gilt:
+              \[1 + 2 \cdot 3 = 7\]
+        \item Der Ausdruck
+              \[1 + 2 \cdot 3 = 7\]
+              entspricht
+              \[+\ 1\ \cdot\ 2\ 3\]
+              in der polnischen Notation und
+              \[1\ 2\ 3\ \cdot\ +\]
+              in der umgekehrten polnischen Notation.
+    \end{bspenum}
+\end{beispiel}
+
+\begin{bemerkung}[Eigenschaften der Prä- und Postfixnotation]
+    \begin{bemenum}
+        \item Die Reihenfolge der Operanden kann beibehalten und gleichzeitig
+              auf Klammern verzichtet werden, ohne dass sich das Ergebnis 
+              verändert.
+        \item Die Infix-Notation kann in einer Worst-Case Laufzeit von $\mathcal{O}(n)$,
+              wobei $n$ die Anzahl der Tokens ist mittels des
+              \textit{Shunting-yard-Algorithmus}\xindex{Shunting-yard-Algorithmus} in
+              die umgekehrte Polnische Notation überführt werden.
+    \end{bemenum}
+\end{bemerkung}
+
 \section{Weitere Informationen}
 \begin{itemize}
     \item \url{http://cs.au.dk/~mis/dOvs/jvmspec/ref-Java.html}
+    \item \href{http://scanftree.com/Data_Structure/prefix-postfix-infix-online-converter}{scanftree.com}:
+          Infix $\leftrightarrow$ Postfix Konverter
 \end{itemize}
 \index{Java Bytecode|)}

BIN
documents/Programmierparadigmen/Programmierparadigmen.pdf