\begin{slide}{Unterprogramme als Argumente}

\begin{verbatim}
int d ( int g(int x) ) { return g(g(1)); }

int p (int x) {
  int f (int y) { return x + y ; }
  return d (f);
}
\end{verbatim}

Betrachte Aufruf $p(3)$.

Das innere Unterprogramm $f$ muß auf den $p$-Frame zugreifen,
um den Wert von $x$ zu finden.

Dieser Frame lebt.

Wenn Unterprogramme nur ``nach innen'' als Argumente übergeben werden,
können die Frames auf einem Stack stehen.

Übung: Assemblercode verstehen

\end{slide}

