From 1cf62c43c17b63fde0cc26f6284c17598b76a3b5 Mon Sep 17 00:00:00 2001 From: noah Date: Sun, 3 Apr 2022 19:17:56 -0500 Subject: [PATCH] Chapter 4 Edits --- Chapter4.tex | 6 +++--- Chapter4_img/Bison-Flex-v2.png | Bin 0 -> 36108 bytes 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 Chapter4_img/Bison-Flex-v2.png 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 0000000000000000000000000000000000000000..baa9a3d4ad6b022e9803bd63c15289b4c86efdaa GIT binary patch literal 36108 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 OPgl!O^QpRB=%5Jz literal 0 HcmV?d00001