This commit is contained in:
parent
578e52aa0b
commit
eaad61965e
2 changed files with 8 additions and 7 deletions
|
@ -6,14 +6,15 @@
|
|||
\label{cha:background}
|
||||
|
||||
\section{Program slicing}
|
||||
\textsl{Program slicing} \cite{Wei81,Sil12}\sergio{hay alguna razon para que \cite{Sil12} no este en la intro?, la unica cita alli es\cite{Wei81}. Propongo eliminar \cite{Sil12} por homogeneidad} is a debugging technique that
|
||||
answers the question: ``which parts of a program affect a given statement and
|
||||
\textsl{Program slicing} \cite{Wei81,Sil12}\sergio{hay alguna razon para que \cite{Sil12} no este en la intro?, la unica cita alli es\cite{Wei81}. Propongo eliminar \cite{Sil12} por homogeneidad}\josep{mas bien, tendria que estar 13 tambi\'en en la intro} is a debugging technique that
|
||||
answers the question: ``which parts of a program \josep{do?}
|
||||
affect a given statement and
|
||||
set of variables?'' The statement and the variables are the basic input to create a slice
|
||||
and are called the \textsl{slicing criterion}. The criterion can be more
|
||||
complex, as different slicing techniques may require additional pieces of input.
|
||||
The \textsl{slice} of a program is the list of statements from the original
|
||||
program ---which constitutes a valid program--- whose execution will result in
|
||||
the same values for the variables (selected in the slicing criterion).
|
||||
the same values for the variables \josep{frase enrrevesada. yo la. cambiaria. De todas formas, para que sea correcta le sobran los parentesis }(selected in the slicing criterion).
|
||||
There exist two fundamental dimensions along which the problem of slicing can be
|
||||
proposed \cite{Sil12}:
|
||||
|
||||
|
@ -22,13 +23,13 @@ proposed \cite{Sil12}:
|
|||
\begin{itemize}
|
||||
\item \textsl{Static} or \textsl{dynamic}: slicing can be performed
|
||||
statically or dynamically.
|
||||
\textsl{Static slicing} \cite{Wei81} produces slices which consider all
|
||||
\textsl{Static slicing} \cite{Wei81} produces slices which\josep{that} consider all
|
||||
possible executions of the program: the slice will be correct regardless of the input supplied.
|
||||
In contrast, \textsl{dynamic slicing} \cite{KorL88} considers a single execution of the program, thus, limiting the slice to
|
||||
the statements present in an execution log. The slicing criterion is
|
||||
expanded to include a position in the log that corresponds to one
|
||||
expanded to include a position in the log\josep{execution history} that corresponds to one
|
||||
instance of the selected statement, making it much more specific. It may
|
||||
help find a bug related to indeterministic behavior (such as a random
|
||||
help \josep{to}find a bug related to indeterministic behavior (such as a random
|
||||
or pseudo-random number generator), but \sergio{, despite selecting the same slicing criterion, the slice }must be recomputed for each case\sergio{different input value/execution considered?}
|
||||
being analyzed.
|
||||
\item \textsl{Backward} or \textsl{forward}: \textsl{backward slicing}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
Program slicing~\cite{Wei81} is a debugging technique that, given a line of
|
||||
code and a set of variables of a program, simplifies such program so that the only parts
|
||||
left of it are those that affect or are affected by the values of the selected variables.
|
||||
left of it are those that affect or are affected by the values of the selected variables. \josep{aqui, antes del ejemplo, habria que decir de manera informal que es un slice y que es un SC}
|
||||
|
||||
\sergio{Se me hace corta esta definicion y me faltan algunas utilidades del program slicing, por que se usa? Realmente no se usa solo en depuracion. Tiene mas usos, esto ademas da referencias a poner si queremos.}
|
||||
|
||||
|
|
Loading…
Reference in a new issue