You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: progNav Paper/progNav Paper.tex
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -163,23 +163,23 @@ \section{Design Principles}
163
163
\section{Related Work}
164
164
%Summary of related work, including a table evaluating existing %tools on various design principles.
165
165
%Spoiler alert, none of the tools satisfy all of the principles.
166
-
Here we discuss many of the various existing tools that help developers explore and navigate code. We also relate the exiting tools back to Design Principles Described in Section \ref{DesignPrinciples}.
166
+
Here we discuss some of the existing tools that help developers navigate code. We also relate the exiting tools back to Design Principles Described in Section \ref{DesignPrinciples}.
167
167
168
-
Many modern IDEs provide tools that help developers navigate through their code.
168
+
Many modern IDEs provide tools that help developers navigate source code.
169
169
For example, Eclipse~\cite{Eclipse} includes \emph{Call Hierarchy} and \emph{Find References}.
170
-
When users invoke \emph{Call Hierarchy}, Eclipse opens a new view that displays the callers and callees for a selected method.
171
-
IntelliJ~\cite{IntelliJ} also provides navigation tools, namely \emph{Analyze Data Flow To/From Here} and \emph{Analyze Dependencies}.
172
-
Much like Eclipse's \emph{Call Hierarchy}, the\emph{Analyze Data Flow} tools display their results in external views.
173
-
These tools provide \textit{Program Analysis} for users to navigate throughout the entirety of a project.
170
+
When users invoke either of these tools, Eclipse opens a new view to display the results.
171
+
For \emph{Call Hierarchy}, this view contains a list of the selected method's callers and callees, whereas \emph{Find References} only lists callers.
172
+
Similarly, IntelliJ~\cite{IntelliJ} provides\emph{Analyze Data Flow}, which also displays its results in an external view.
173
+
These tools provide \textit{Program Analysis} for users to navigate throughout their code.
174
174
However, they generally differ from Flower because they lack \textit{Low Barriers to Invocation} and \textit{In Situ Navigation}.
175
175
176
176
There are also several tools that reside strictly within the code editor, enabling a form of \textit{In Situ Navigation}.
177
177
Two examples of these tools are Eclipse's \emph{Mark Occurrences} and \emph{Open Declaration}.
178
178
Eclipse automatically invokes \emph{Mark Occurrences} whenever a user clicks on a variable or method name in the code.
179
179
The tool then highlights occurrences of that element elsewhere in the current file.
180
180
\emph{Mark Occurrences} epitomizes \textit{Low Barriers to Invocation}.
181
-
These approaches are similar to Flower in that they display the results within the editor rather than a separate view or panel.
182
-
However, they do not provide\textit{Program Analysis} or enable \textit{Full Program Navigation}.
181
+
These approaches are similar to Flower in that they display the results within the editor rather than a separate view or panel.
182
+
However, they do not perform\textit{Program Analysis} or enable \textit{Full Program Navigation}.
183
183
184
184
185
185
Many other tools help developers navigate code by representing the code graphically and allowing developers to navigate those graphs~\cite{CodeBubbles,CodeCanvas,CodeSurfer,Dora,Reacher,Relo,Whyline}.
0 commit comments