diff --git a/documents/Programmierparadigmen/Java-Bytecode.tex b/documents/Programmierparadigmen/Java-Bytecode.tex index 4f3775f..abdc0b8 100644 --- a/documents/Programmierparadigmen/Java-Bytecode.tex +++ b/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|)} \ No newline at end of file diff --git a/documents/Programmierparadigmen/Programmierparadigmen.pdf b/documents/Programmierparadigmen/Programmierparadigmen.pdf index e906034..b901704 100644 Binary files a/documents/Programmierparadigmen/Programmierparadigmen.pdf and b/documents/Programmierparadigmen/Programmierparadigmen.pdf differ