Geschachtelte Funktionen

This commit is contained in:
Marco Ammon 2020-06-25 16:11:50 +02:00
parent 0259fd2643
commit 776ca4c931
2 changed files with 11 additions and 5 deletions

Binary file not shown.

View File

@ -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}