diff --git a/verfahren.pdf b/verfahren.pdf index c26bddb..b17477e 100644 Binary files a/verfahren.pdf and b/verfahren.pdf differ diff --git a/verfahren.tex b/verfahren.tex index 718e164..517b118 100644 --- a/verfahren.tex +++ b/verfahren.tex @@ -28,9 +28,9 @@ %\pdfminorversion=7 % Import-Unterstützung für PDFs bis Version 1.7 %\pgfplotsset{compat=1.16} % verhindern, dass pgfplots im Rückwärtskompatibilitätsmodus arbeitet -\setlist[enumerate,1]{label={\alph*)}} -\setlist[enumerate,2]{label={\arabic*.}} +\setlist[enumerate,1]{label={\arabic*.}} +\setlist[enumerate,2]{label={\alph*)}} \title{Grundlagen des Übersetzerbaus: Verfahren} \author{Marco Ammon (my04mivo)} @@ -44,6 +44,19 @@ \section{Transformationen} \subsection{Innere Klassen} +\begin{description} + \item[innere Klasse:] in \texttt{Outer} enthaltene, nicht statische Klasse \texttt{Inner} +\end{description} + +\begin{enumerate} + \item flache Hierarchie durch Verschieben der inneren Klasse außerhalb der umgebenden Klasse(n): \texttt{Outer.Inner} $\rightarrow$ \texttt{Outer\$Inner} + \item Konstruktor der inneren Klasse um Parameter ggf. erzeugen und um Parameter \texttt{Outer this\$i} ergänzen (mit $i$ als Schachtelungstiefe von \texttt{Outer}), zusätzlich gleichnamige Instanzvariable einfügen + \item Zugriffen auf Instanzvariablen von \texttt{Outer} ein \texttt{this\$i.} voranstellen + \item Hilfsmethoden für Zugriff auf private Instanzvariablen von \texttt{Outer} in \texttt{Outer} einfügen (mit aktueller Java-Version durch spezielles Attribut in Klassendatei nicht mehr notwendig) + \item Alle Auftreten von \texttt{Inner} durch \texttt{Outer\$Inner} ersetzen + \item Bei von \texttt{Inner} erbenden Klassen \texttt{(new Outer()).super();} im Konstruktor ergänzen, damit \text{Outer}-Instanz erzeugt wird + \item Bei in Blöcken deklarierten inneren Klassen wird der Zugriff auf finale (oder \enquote{effectively-final}) Variablen durch Ergänzen des Konstruktors um diese Variablen ermöglicht +\end{enumerate} \subsection{Generics}