diff --git a/Secciones/conclusion.tex b/Secciones/conclusion.tex index 4465e0c..2c26ebd 100644 --- a/Secciones/conclusion.tex +++ b/Secciones/conclusion.tex @@ -15,6 +15,8 @@ An important contribution of our work has been the solutions proposed for each o \section*{Future work} +Our work does not end here, we are currently studying some improvements and applications related to our proposal, hereunder we enumerate some of them: + \begin{itemize} \item Implementation of the solutions proposed, so that they can be benchmarked against the previous state of the art, and used to build better program slicers. The implementation could be done in Java or another language with a similar exception-catch system. The solutions that improve correctness at the price of slice speed could be implemented as optional for the user to execute, as to avoid increasing the slicing software's temporal complexity. \item Improved correctness for the \texttt{try-catch} statement. The solution proposed in chapter~\ref{cha:solution} does solve the lack of completeness in the treatment of \texttt{catch} statements, at the cost of including many more \texttt{catch} statements that are really necessary. This is not the most desirable outcome, but it can be improved by developing and implementing the measures suggested at the end of the solution: make the inclusion of the \texttt{catch} statements conditional upon two dependencies instead of one and represent \texttt{catch} statements multiple times, so that the method calls that throw errors may be selectively included. diff --git a/Secciones/incremental_slicing.tex b/Secciones/incremental_slicing.tex index 45bca11..9581e53 100644 --- a/Secciones/incremental_slicing.tex +++ b/Secciones/incremental_slicing.tex @@ -380,7 +380,7 @@ The ``normal return'' node is itself a pseudo-statement. The \textit{true} edge As can be seen in the CFG shown in Figure~\ref{fig:try-catch} (centre), the nodes ``Normal return'', ``catch'' and ``try'' are considered as pseudo-statements, and their \textit{true} and \textit{false} edges (solid and dashed respectively) are used to create control dependencies. The statements contained after the function call, inside the \texttt{catch} statement and inside the \texttt{try} statement are respectively controlled by the aforementioned nodes. - Finally, consider the statement \texttt{Z}; which is not dependent on any part of the \texttt{try-catch} statement, as all exceptions that may be thrown are caught: it will execute regardless of the path taken inside the \texttt{try} block. \carlos{Consider critiquing the result, saying that despite the last sentence, statements can be removed (the catch) so that the dependencies are no longer the same.} + Finally, consider the statement \texttt{Z}; which is not dependent on any part of the \texttt{try-catch} statement, as all exceptions that may be thrown are caught: it will execute regardless of the path taken inside the \texttt{try} block.% \carlos{Consider critiquing the result, saying that despite the last sentence, statements can be removed (the catch) so that the dependencies are no longer the same.} \begin{figure}[h] \begin{minipage}{0.35\linewidth} \begin{lstlisting} diff --git a/paper.tex b/paper.tex index ed967d1..57d8a64 100644 --- a/paper.tex +++ b/paper.tex @@ -27,8 +27,8 @@ \usepackage{marginnote} \newif\ifpaperVersion -%\paperVersiontrue -\paperVersionfalse +\paperVersiontrue +%\paperVersionfalse \ifpaperVersion % Paper version \newcommand{\ignore}[1]{} @@ -98,10 +98,10 @@ \begin{abstract} La fragmentaci\'o de programes es una t\`ecnica que pot ser aplicada practicament a qualsevol llenguatge de programaci\'o. No obstant aix\`o, en pres\`encia de tractament d'excepcions, el software actual de fragmentaci\'o de programes presenta problemes de precisi\'o. Aquest projecte aborda el problema de fracmentaci\'o de programes amb tractament d'excepcions, analitzant el problem des d'una perspectiva general (per a qualsevol tipus de sistema d'excepcions), per\`o centrant els nostres esforços en un paradigma orientat a objectes, specificament per al llenguatge de programaci\'o Java. Tot i aix\'i, la soluci\'o es encara suficientment general com per a aplicarla a altres paradigmes i llenguatges de programaci\'o. - En aquesta tesi, estudiem les actuals solucions disponibles per al problema, i proposem una generalitzaci\'o que inclueix al menys les instruccions \texttt{try-catch} i \texttt{throw}. Proveïm descripcions detallades, generalitzacions i solucions per a dos problemes que incrementen el tamany dels fragments de programa obtinguts i un problema que redueix enormement la precisi\'o dels fragments obtinguts. + En aquesta tesi, estudiem les actuals solucions disponibles per al problema, i proposem una generalitzaci\'o que inclueix al menys les instruccions \texttt{try-catch} i \texttt{throw}. Proveïm descripcions detallades, generalitzacions i solucions per a dos problemes que incrementen el tamany dels fragments de programa obtinguts i un problema que redueix enormement la precisi\'o dels fragments calculats. Les solucions que proposem produeixen fragments de programa que garanteixen completitut i que con el mes correctes posibles, donat el conjunt de restriccions del sistema de tractament d'excepcions. - Els an\`alisi realitzat i les solucions proposades son espec\'ifiques per al llenguatge de programaci\'o Java, pero son suficientment generals per a ser exportades sense esforç a altres llenguatges de programaci\'o ambs un sistema de tractament d'excepcions similar. Les solucions tamb\'e son espec\'ifiques per a fragmentaci\'o de programes est\`atica cap arrare, pero son igualment compatibles amb altres variantes de la fragmentaci\'o de programes. + Els an\`alisis realitzats i les solucions proposades son espec\'ifiques per al llenguatge de programaci\'o Java, pero son suficientment generals per a ser exportades sense esforç a altres llenguatges de programaci\'o ambs un sistema de tractament d'excepcions similar. Les solucions tamb\'e son espec\'ifiques per a fragmentaci\'o de programes est\`atica cap arrare, pero son igualment compatibles amb altres variantes de la fragmentaci\'o de programes. \end{abstract} \selectlanguage{english}