Finally fixed bib

This commit is contained in:
Rolf Martin Glomsrud 2024-05-29 23:57:43 +02:00
parent b28248ca03
commit 26d24ad0e1
2 changed files with 16 additions and 4 deletions

Binary file not shown.

View file

@ -21,14 +21,26 @@ In order to allow for simple analysis and refactoring of code, there already exi
Browse-By-Query is a language created for Java that analyses Java Bytecode files, and builds a database structure to represent the code classes, method calls, and other sections contained within the code. The language uses english-like queries combined with filtering and set operators to allow for more complex queries. This language was created as a way to browse large code-bases like one is browsing a database. Since BBQ builds the source code into something resembling a database, queries can be done with respect to each objects relationship in the original code, and complex and advanced queries based on relationships are possible using this method.
\subsection*{.QL}
.QL is an object-oriented query language. It supports querying a wide array of data structures, code being one of them. \cite{ProgrammingLanguageEcolutionViaSourceCodeQueryLanguages}.QL has a commercial implementation \textit{SemmleCode}, which comes with a full editor and various pre-defined code transformations that might be useful for the end developer.
\subsection*{CodeQL}
CodeQL is an object-oriented query language, it was previously known as .QL. It supports querying a wide array of data structures, code being one of them. \cite{ProgrammingLanguageEcolutionViaSourceCodeQueryLanguages}. CodeQL is used to analyze code semantically to discover vulnerabilities~\cite{CodeQL}.
\subsection*{PMD XPath}
PMD is the most versatile query language for Java source code querying out of all the ones explored in this section. \cite{ProgrammingLanguageEcolutionViaSourceCodeQueryLanguages}PMD supports querying of all Java constructs , it has this wide support due to constructing the entire codebase in XML format. This language was build for static code analysis, and therefore is a great way to perform queries on static code, it is mostly used as a tool for code editors to enforce programming styles.
PMD is the most versatile query language for Java source code querying out of all the ones explored in this section~\cite{ProgrammingLanguageEcolutionViaSourceCodeQueryLanguages}. PMD supports querying of all Java constructs, it has this wide support due to constructing the entire codebase's AST in XML format. This language was built for static code analysis, and therefore is used in the PMD source code analyzer.
\begin{lstlisting}
public class a{
int someVar;
int otherVar;
}
\end{lstlisting}
If we wish to query the Java source code in the listing above to find the ids of all variable declarations, the query will look as follows:
\begin{lstlisting}
//VariableDeclaratorId
\end{lstlisting}
\subsection*{Jackpot}