diff --git a/Chapter4.tex b/Chapter4.tex index 924e085..ad25c89 100644 --- a/Chapter4.tex +++ b/Chapter4.tex @@ -51,14 +51,14 @@ exploit files. The design of exploits in the exploit file is developed as: \begi and ``group" keyword is optional. An example of an exploit not utilizing the group feature is: \begin{verbatim}exploit brake_pads(2015_Toyota_Corolla_LE)=\end{verbatim} and an example of an exploit utilizing the group feature is: \begin{verbatim}time group exploit advance_month(all_applicable)=\end{verbatim} -To implement the keyword recognition and group name parsing, a few changes were conducted, where the intention was to detect the usage of the ``group" keyword, and have the lexical analyzer code return to the parser implementation file to +To implement the keyword recognition and group name parsing, a few changes were made, where the intention was to detect the usage of the ``group" keyword, and have the lexical analyzer code return to the parser implementation file to alert of the presence of the ``GROUP" token. The new token is of type string with the name ``GROUP", and it is comprised of a leading ``IDENTIFIER" of type string or integer token, followed by the ``GROUP" token. This new token also required changes to the processing of the ``exploit" keyword. If the group keyword is not detected, the exploit has a group of name ``null". If the group keyword is detected, then the leading IDENTIFIER is parsed, and the exploit is assigned to a group with the parsed name. Various auxiliary functions were also adjusted to include (for instance) support for printing the groups of each exploit. Figure \ref{fig:bison-flex} illustrates the incorporation of this feature into Bison, Flex, and the overall program. \begin{figure}[htp] - \includegraphics[width=\linewidth]{"./Chapter4_img/Bison-Flex.png"} + \includegraphics[width=\linewidth]{"./Chapter4_img/Bison-Flex-v2.png"} \vspace{.2truein} \centerline{} \caption{Inclusion of Synchronous Firing into GNU Bison, GNU Flex, and the overall program} \label{fig:bison-flex} @@ -116,7 +116,7 @@ The testing information is as follows: \end{itemize} \TUsubsection{Results} \label{sec:Sync-Results} -Using the testing setup described in Section \ref{sec:Sync-Test} on the platform described at the beginning of Section \ref{sec:test-platform}, results were collected in regards to the effect of synchronous firing on both state space and runtime. These results can be seen in Figures \ref{fig:Sync-RT} and \ref{fig:Sync-State}. Both figures depict a decrease in the number of states and a decrease in the runtime when synchronous firing is utilized. Since synchronous firing prevents the generation of unattainable states, there is no meaningful information loss that occurs in the graphs generated with the synchronous firing feature. It is also noteworthy that even for the smallest graph generated (which only resulted in 394 states with synchronous firing enabled), the computation cost of additional work for group vectors was justified by the decrease in runtime. Since the resulting number of states was also reduced, there will be increased justification for the synchronous firing approach due to a reduced runtime for the analysis process. Further elaboration is seen in Section \ref{sec:FW}, but it is hypothesized that the synchronous firing approach will lead to an increased runtime reduction and state space reduction when more assets exist in the network due to the increased number of unattainable state permutations. +Using the testing setup described in Section \ref{sec:Sync-Test} on the platform described at the beginning of Section \ref{sec:test-platform}, results were collected in regards to the effect of synchronous firing on both state space and runtime. These results can be seen in Figures \ref{fig:Sync-RT} and \ref{fig:Sync-State}. Both figures show a decrease in the number of states and a decrease in the runtime when synchronous firing is utilized. Since synchronous firing prevents the generation of unattainable states, there is no meaningful information loss that occurs in the graphs generated with the synchronous firing feature. It is also noteworthy that even for the smallest graph generated (which only resulted in 394 states with synchronous firing enabled), the computation cost of additional work for group vectors was justified by the decrease in runtime. Since the resulting number of states was also reduced, there will be increased justification for the synchronous firing approach due to a reduced runtime for the analysis process. Further elaboration is seen in Section \ref{sec:FW}, but it is hypothesized that the synchronous firing approach will lead to an increased runtime reduction and state space reduction when more assets exist in the network due to the increased number of unattainable state permutations. \begin{figure} \centering diff --git a/Chapter4_img/Bison-Flex-v2.png b/Chapter4_img/Bison-Flex-v2.png new file mode 100644 index 0000000..baa9a3d Binary files /dev/null and b/Chapter4_img/Bison-Flex-v2.png differ