diff --git a/verfahren.pdf b/verfahren.pdf index 3fcc934..7f86669 100644 Binary files a/verfahren.pdf and b/verfahren.pdf differ diff --git a/verfahren.tex b/verfahren.tex index a2430d2..a5ce525 100644 --- a/verfahren.tex +++ b/verfahren.tex @@ -28,6 +28,8 @@ %\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 +% TODO: MathOperators verwenden +% TODO: Code in \texttt{} setzen \setlist[enumerate,1]{label={\arabic*.}} \setlist[enumerate,2]{label={\alph*)}} @@ -493,6 +495,7 @@ \subsection{Steensgards Algorithmus zur interprozeduralen, fluss-insensitiven may-Analyse} \begin{itemize} + \item kontext-insensitiv: vermischt Aliaswissen mehrerer Aufrufe der gleichen Funktion \item Speichergraph: \begin{itemize} \item Knoten: eine oder mehrere Speicherstellen \item gerichtete Kante: \enquote{zeigt (möglicherweise) auf}-Beziehung, damit Alias: (*start, ziel) @@ -515,16 +518,17 @@ \end{itemize} \item $*a = b$: \begin{itemize} \item $a$, $*a$ mit ausgehenden Kanten: rekursives Verschmelzen von $*b$ und $**a$ - \item sonst: TODO (Übung) + \item $a$ noch ohne ausgehende Kante: Annotation von $a$ mit $(b:*a)$ \end{itemize} \item $a = b \oplus c$ mit $\oplus$ binärer Operation: \begin{itemize} \item $a$, $b$, $c$ keine Zeiger: Annotation von $b$ und $c$ mit $(a:b)$ bzw. $(a:c)$ \item $b$ oder $c$ Zeiger: Kante von $a$ nach $*b$ hinzufügen, $c$ mit $(a:c)$ annotieren \end{itemize} - \item $x = p(y_1, \textellipsis, y_n)$: \begin{itemize} - \item ggf. Speichergraph für $p$ berechnen - \item Zuweisungsregeln für $x$ und alle $y_i$ verwenden - \end{itemize} + \item $x = p(y_1, \textellipsis, y_n)$ mit Funktion $p(z_1, \textellipsis, z_n)$ \begin{enumerate} + \item Zuweisungsregeln $z_i = y_i$ verwenden + \item ggf. Speichergraph für Anweisungen von $p$ berechnen + \item Zuweisungsregeln für $x$ verwenden + \end{enumerate} \item Funktionszeiger: Bei Verschmelzen auf Typen achten \end{itemize} \end{enumerate}