diff --git a/verfahren.pdf b/verfahren.pdf index d5cb7af..8803a9e 100644 Binary files a/verfahren.pdf and b/verfahren.pdf differ diff --git a/verfahren.tex b/verfahren.tex index 982045e..658f48e 100644 --- a/verfahren.tex +++ b/verfahren.tex @@ -86,12 +86,18 @@ \end{itemize} \end{itemize} - \section{Geschachtelte Funktionen} - -\subsection{ohne Display} - -\subsection{mit Display} +\begin{itemize} + \item ohne Display: \begin{itemize} + \item Aufruf der geschachtelte Funktion mit Zeiger auf Aktivierungsrahmen der umschließenden Funktion (sog. statischer Vorgängerverweis SV) + \item bei Aufruf aus tieferer Schachtelungstiefe SV des Aufrufers ggf. bis zum relevanten Aktivierungsrahmen verfolgen + \end{itemize} + \item mit Display (gesondertes, globales Array) zur Speicherung der SV: \begin{itemize} + \item Bei Betreten von Funktion der Schachtelungstiefe $t$, ihren FP an Index $t$ im Display speichern und ggf. bereits bestehenden Wert einer Schwesterfunktion im eigenen Aktivierungsrahmen sichern + \item Durch statisch bekannte Schachtelungstiefe Größe des Displays zur Übersetzungszeit bekannt und Zugriff auf lokale Variablen aus umschließenden Kontext durch Dereferenzieren des SV aus statisch bekannter Position im Display + \end{itemize} + \item Funktionszeiger: auch Argumentwerte müssen mit Zeiger gespeichert werden +\end{itemize} \section{Objekt-orientierte Sprachen}