From cf1594fbd42ec9f9d15e6c4d629d70e97c676229 Mon Sep 17 00:00:00 2001
From: Carlos Galindo <cargaji@inf.upv.es>
Date: Wed, 4 Dec 2019 15:53:32 +0000
Subject: [PATCH] added missing files

---
 Secciones/conclusion.tex         |   7 ++
 Secciones/problem_solution.tex   | 113 +++++++++++++++++++++++++++++++
 img/nested-unconditional-cfg.dot |  22 ++++++
 img/nested-unconditional-cfg.pdf | Bin 0 -> 16724 bytes
 img/nested-unconditional-pdg.dot |  23 +++++++
 img/nested-unconditional-pdg.pdf | Bin 0 -> 16253 bytes
 6 files changed, 165 insertions(+)
 create mode 100644 Secciones/conclusion.tex
 create mode 100644 Secciones/problem_solution.tex
 create mode 100644 img/nested-unconditional-cfg.dot
 create mode 100644 img/nested-unconditional-cfg.pdf
 create mode 100644 img/nested-unconditional-pdg.dot
 create mode 100644 img/nested-unconditional-pdg.pdf

diff --git a/Secciones/conclusion.tex b/Secciones/conclusion.tex
new file mode 100644
index 0000000..a661a47
--- /dev/null
+++ b/Secciones/conclusion.tex
@@ -0,0 +1,7 @@
+% !TEX encoding = UTF-8
+% !TEX spellcheck = en_GB
+% !TEX root = ../paper.tex
+
+\chapter{Conclusion}
+
+\carlos{todo}
\ No newline at end of file
diff --git a/Secciones/problem_solution.tex b/Secciones/problem_solution.tex
new file mode 100644
index 0000000..8e585a1
--- /dev/null
+++ b/Secciones/problem_solution.tex
@@ -0,0 +1,113 @@
+% !TEX encoding = UTF-8
+% !TEX spellcheck = en_GB
+% !TEX root = ../paper.tex
+\chapter{Proposed solution}
+\label{cha:solution}
+
+This solution is an extension of Allen's \cite{AllH03}, with some modifications to solve the problem found \josep{el problem found no ha quedado claro. Se ha diluido entre la maraña abrumadora de casos. debes formular y dejar nitido cristalino cual es el problema y por qué no lo solucinan las dsemás aproximaciones, y poner un ejempllo concreto.}. Before starting, we need to split all instructions in three categories:
+
+\begin{description}
+	\item[statement] non-branching instruction, e.g. an assignment or method call.
+	\item[predicate] conditional branch, e.g. if statements and loops.
+	\item[pseudo-predicate] unconditional jump, e.g. break, continue, return, goto and throw instructions.
+\end{description}
+
+Pseudo-predicates have been previously use to model unconditional jumps with a counter-intuitive reasoning: the next statement that would be executed were the pseudo-predicate not there would be executed, therefore it is control dependent on it. Going back to the definition of control dependency, one could argue that the real control dependency is on the conditional branch that lead to the \josep{???}
+
+\begin{figure}
+\centering
+\begin{lstlisting}
+if (a) {
+	return a;
+}
+print(a);
+\end{lstlisting}
+\begin{lstlisting}
+if (a) {
+
+}
+print(a);
+\end{lstlisting}
+\caption{Example of pseudo-predicates control dependencies \josep{no se referencia a esta figura desde ningún sitio}}
+\end{figure}
+
+This is the process used to build the Program Dependence Graph. \josep{Todo lo que sigue es demasiado verbose. No hay definiciones concretas. Es todo muy informal, y no hay un ongoing example que permita ver como las fases van evolucionando paso a paso. Nos reunimos para hablar de esta sección antes de reescribirla...}
+
+\begin{description}
+	\item[Step 1 (static analysis):] Identify for each instruction the variables read and defined. Each method is annotated with the global variables that they access or modify.
+	\item[Step 2 (build CFGs):] Build a CFG for each method of the program. The start of all methods is a vertex labeled \textsl{enter}, which also contains the assignments for parameters and global variables used (\texttt{var = var\_in}). The \textsl{enter} node is connected to the first instruction of the method. In a similar fashion, all methods end in an \textsl{exit} vertex with the corresponding output variables. There exists one \textsl{normal exit} to which the last instruction and all return instructions are connected. If the method can throw any exceptions, there exists one \textsl{error exit} for each type of exception that may be thrown. The normal and erroneous exits are connected to the \textsl{exit} node.
+
+	Every normal statement is connected to the subsequent one by an unlabeled edge. Predicates have two outgoing edges, labeled \textsl{true} and \textsl{false}. Pseudo-predicates also have two outgoing edges. The \textsl{true} edge is connected to the destination of the jump (\textsl{normal exit} in the case of return, the begin or end of the loop in the case of continue and break, etc.). The \textsl{false} edge is a non-executable edge, marked with a dashed line, and it is connected to the next instruction that would be executed if the pseudo-predicate was a \textsl{nop}.
+
+	Nodes that represent a call to a method $M$ include the transfer of parameters and variables that may be read or written to, then execute the call, and finally the extraction of modified variables. Call nodes are an exception to the previous paragraph, as they can have an unlimited amount of outgoing edges. Each outgoing edge lands on a pseudo-predicate which indicates if the execution was correct or an exception was raised. The executable edge of each pseudo-predicate will lead to the next instruction to be executed, whereas the non-executable one will lead to the end of the try-catch block. All call nodes can lead to a \textsl{normal return} node, which is linked to the next instruction, and one error node for each type of exception that may be thrown. The erroneous returns are labeled \textsl{catch ExType}, and lead to the first instruction in the corresponding catch block\footnotemark. Any exception that may not be caught will lead to the erroneous exit node of the method it's in. See the example for more details.
+
+	\footnotetext{A problem presents itself here, as some exceptions may be able to trigger different catch blocks, due to the secuential nature of catches and polymorphism in Java. A way to fix this is to make catch blocks behave as a switch.}. %TODO
+
+	\item[Step 3 (compute dependences):] For each node in the CFG, compute the control and data dependencies. Non-executable edges are only included when computing control dependencies.\\
+	\carlos{put inside definition}
+	A node $a$ is \textsl{control dependent} on node $b$ iff $a$ post-dominates one but not all of $b$'s successors.\\
+	A node $a$ is \textsl{data dependent} on node $b$ iff $b$ defines or may define a variable $x$, $a$ uses or may use $x$, and there is an $x$-definition-free path in the CFG from $b$ to $a$.\\
+	\item[Step 4 (convert each CFG into a PDG):] each node of the CFG is one node of the PDG, with two exceptions. The first are the \textsl{enter}, \textsl{exit} and method call nodes, where the variable input and output assignments are split and placed as control-dependent on their original node. The second is the \textsl{exit} node, which is to be removed (the control-dependencies from \textsl{exit} to the variable outputs is transferred to the \textsl{enter} node). Then all the dependencies computed in the previous step are drawn.
+	\item[Step 5 (connect PDGs to form a SDG):] each method call to $M$ must be connected to the \textsl{enter} node in $M$'s PDG, as a control dependence. Each variable input from the method call is connected to a variable input of the method definition via a data dependence. Each variable output from the method definition is connected to the variable output of the method call via a data dependence. Each method exit is connected \carlos{complete}.
+\end{description}
+
+\begin{itemize}
+	\item An extra type of control dependency represented by an ``exception edge''. It will represent the need to include a \textsl{catch} clause when an exception can be thrown. It is represented with a dotted line (dashed line is for data dependency). These edges have a special characteristic: when one is traversed, only ``exception edges'' may be traversed from the new nodes included in the slice. If the same node is reached by another kind of edge, the restriction is lifted. The behavior is documented in algorithm \ref{alg:2pass}, with changes from the original algorithm are \underline{underlined}.
+	\item Add an extra ``exception edge'' from each ``exit with exception of type T'' node, where the type of the exception is \texttt{t} to all the corresponding ``\texttt{throw e}'', such that \texttt{e} is or inherits from \texttt{T}.
+	\item Add an extra ``exception edge'' from each catch statement to every statement that can throw that error.
+	\item The exception edges will only be placed when the method or the try-catch statement are loop-carrier\footnote{Loop-carrier, when referring to a statement, is the property that in a CFG for the complete program, the node representing the statement is part of a loop, meaning that it could be executed again once it is executed.}.
+\end{itemize}
+
+\begin{algorithm} % generate slice
+\caption{Two-pass algorithm to obtain a backward static slice with exceptions}
+\label{alg:2pass}
+\begin{algorithmic}[1]
+	\REQUIRE SDG $\mathcal{G}$ representing program P. $\mathcal{G} = \{\mathcal{S}, \mathcal{E}\}$, where $\mathcal{S}$ is a set of states (some are statements) connected by a set of edges $\mathcal{E}$. Each edge, is a triplet composed of the type of edge (control, data or \underline{exception} dependency, summary, param-in, param-out), the source and destination of the edge.
+	\REQUIRE A slicing criterion, composed of a statement $s \in \mathcal{S}$ and a variable $v$.
+	\ENSURE $\mathcal{S}' \subseteq \mathcal{S}$, representing the slice of P according to the criterion provided.
+
+	\medskip
+	\COMMENT{First pass (do not traverse output parameter edges).}
+	\STATE{$\mathcal{S}' \Leftarrow \emptyset$ (slice), $\mathcal{Q}\Leftarrow\{s\}$ (queue), $\mathcal{S}\Leftarrow \mathcal{S} - \{s\}$ (not visited), $\mathcal{R}\Leftarrow \emptyset$ (only visited via exception edge)}
+	\WHILE{$\mathcal{Q} \neq \emptyset$}
+		\STATE{$a \in \mathcal{Q}$} \COMMENT{Select an element from $\mathcal{Q}$}
+		\STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} - \{a\}$}
+		\STATE{$\mathcal{S}' \Leftarrow \mathcal{S}' + \{a\}$}
+		\FORALL{$\mathcal{A}$ in $\{\{type, origin, a\} \in \mathcal{E}\}$}
+			\IF{$type \neq$ param-out \AND ($origin \notin \mathcal{S}'$ \OR ($origin \in \mathcal{R}$ \AND $a \notin \mathcal{R}$))} \label{line:param-out}
+				\IF{\underline{$a \in \mathcal{R}$}}
+					\IF{\underline{$type =$ exception}}
+						\STATE{\underline{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$}}
+						\STATE{\underline{$\mathcal{R} \Leftarrow \mathcal{R} + \{origin\}$}}
+					\ENDIF
+				\ELSE
+					\STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$}
+				\ENDIF
+			\ENDIF
+		\ENDFOR
+	\ENDWHILE
+	\\
+	\medskip
+	\COMMENT{Second pass (very similar, do not traverse input parameter edges).}
+	\STATE $\mathcal{Q} \Leftarrow \mathcal{S}'$
+	\WHILE{$\mathcal{Q} \neq \emptyset$}
+		\STATE{$a \in \mathcal{Q}$} \COMMENT{Select an element from $\mathcal{Q}$}
+		\STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} - \{a\}$}
+		\STATE{$\mathcal{S}' \Leftarrow \mathcal{S}' + \{a\}$}
+		\FORALL{$\mathcal{A}$ in $\{\{type, origin, a\} \in \mathcal{E}\}$}
+			\IF{$type \neq$ param-in \AND ($origin \notin \mathcal{S}'$ \OR ($origin \in \mathcal{R}$ \AND $a \notin \mathcal{R}$))}
+				\IF{\underline{$a \in \mathcal{R}$}}
+					\IF{\underline{$type =$ exception}}
+						\STATE{\underline{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$}}
+						\STATE{\underline{$\mathcal{R} \Leftarrow \mathcal{R} + \{origin\}$}}
+					\ENDIF
+				\ELSE
+					\STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$}
+				\ENDIF
+			\ENDIF
+		\ENDFOR
+	\ENDWHILE
+\end{algorithmic}
+\end{algorithm}
+
+% vim: set noexpandtab:ts=2:sw=2:wrap
diff --git a/img/nested-unconditional-cfg.dot b/img/nested-unconditional-cfg.dot
new file mode 100644
index 0000000..b213404
--- /dev/null
+++ b/img/nested-unconditional-cfg.dot
@@ -0,0 +1,22 @@
+digraph cfg {
+	start -> while [label = T];
+    while -> "if (Y)" [label = "T"];
+    while -> D [label = "F"];
+	D -> end;
+    "if (Y)" -> "if (Z)" [label=T];
+    "if (Y)" -> C [label=F];
+    "if (Z)" -> A [label=T];
+    "if (Z)" -> B [label=F];
+	//node [color="red"];
+    A -> break1;
+    B -> break2;
+	break1 -> D [label = T];
+	break2 -> D [label = T];
+	while [label="while (X)"];
+    break1 [label = "break"];
+    break2 [label = "break"];
+	break1 -> B [style=dashed, label = F];
+	break2 -> C [style=dashed, label = F];
+	C -> while;
+    start -> end [label = F, style = dashed];
+}
\ No newline at end of file
diff --git a/img/nested-unconditional-cfg.pdf b/img/nested-unconditional-cfg.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f58a8651d022176c1abcce8e01ff6b95f23ca8ed
GIT binary patch
literal 16724
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

literal 0
HcmV?d00001

diff --git a/img/nested-unconditional-pdg.dot b/img/nested-unconditional-pdg.dot
new file mode 100644
index 0000000..b357b34
--- /dev/null
+++ b/img/nested-unconditional-pdg.dot
@@ -0,0 +1,23 @@
+digraph pdf {
+	entry -> {while; D};
+    entry [style = filled];
+	while [label = "while (X)", style = filled];
+	while -> {"if (Y)" C};
+    C [style = "bold,filled"];
+    "if (Y)" -> C [label = 2];
+    "if (Y)" [style = filled];
+	"if (Y)" -> {"if (Z)" B break2};
+	"if (Z)" -> {A break1};
+    "if (Z)" [style = filled, color = lightblue];
+    "if (Z)" -> {B break2} [label = 1];
+	break1 -> {B break2} [label = 1];
+	break2 -> {C while} [label = 2];
+	{rank=same; A break1 B break2}
+    break1 [label = "break 1", style = filled, color = lightblue];
+    break2 [label = "break 2", style = filled];
+	{rank=same; "if (Z)" C}
+	{rank=same; while D}
+	{edge [style=invis];
+		A -> break1 -> B -> break2;
+	}
+}
\ No newline at end of file
diff --git a/img/nested-unconditional-pdg.pdf b/img/nested-unconditional-pdg.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..a2b82fd53a3f933f8c692a0ae785c0aca0b5cae9
GIT binary patch
literal 16253
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

literal 0
HcmV?d00001