# Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

# Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
...
• 2 commits
• 4 files changed
 ashinkarov Final version? 9a68a82 ashinkarov Merge branch 'master' of github.com:junniest/bach_test_repo 87d67e4
 @@ -24,7 +24,8 @@ \subsection{Match Syntax} the left hand side of the match. The \verb|regexp| regular expression is a box standard regular -expression which is defined by the grammar at Fig.~\ref{fig:reggram}. +expression~\cite{regexp} which is defined by the grammar at +Fig.~\ref{fig:reggram}. \begin{figure}[h!] \begin{verbatim} regexp ::= concat-regexp '|' regexp @@ -157,7 +158,7 @@ \subsubsection{Type system} driving force of the inference. First of all, it is easy to define a subset relationship on two regular expressions $r_1 \sqsubseteq r_2$. As we know, we can always build a DFA for -a regular expression and minimize it, which gives us a minimal +a regular expression and minimize it~\cite{dragon-book}, which gives us a minimal possible automaton for the language recognized by a given regular expression. It means that $r_1 \sqsubseteq r_2 \Rightarrow min (det (r_1)) \sqsubseteq min (det (r_2))$. For two minimized @@ -193,7 +194,8 @@ \subsubsection{Type system} In order to propagate type information in the branches obtained from the application of \verb|type| construct, we have to know how to subtract -two regular expressions, which is, again, simple. If $T$ and $S$ are +two regular expressions~\cite{reglang}, which is, again, simple. +If $T$ and $S$ are respective DFA for subtracted types, all we have to do is to construct $C = T \times S$ and make the final states of $C$ be the pairs where $T$ states are final and $S$ states are not.
 @@ -1,7 +1,7 @@ \section{\label{sec:regexps}Regular expressions} We have devised a method of implementing match syntax that will be time -effective during pre-processing. We have also created a prototype that +effective during the transformation. We have also created a prototype that ilustrates some of the features described in this article. This section will, in short, describe the approach we selected, for the full description, however, turn to the full paper. @@ -13,8 +13,8 @@ \section{\label{sec:regexps}Regular expressions} using the subset construction algorithm. In order to minimise execution time even further, we minimise the created DFA. -The minimisation algorithm is described in detail in the "Dragon -Book"\cite{dragon-book}. The algorithm creates sets of states that cannot be +The minimisation algorithm is described in detail in the Dragon +Book''\cite{dragon-book}. The algorithm creates sets of states that cannot be distinguished by any input token sequence. Once the algorithm fails to break the sets into smaller ones it stops. These sets of states then become new states of the minimal automaton. @@ -57,7 +57,7 @@ \subsection{DFA grouping} The second option is more complex. In this case we combine the automata created for each of the matches together into a single DFA. This is done in order to -reduce matching time, the automata megring algorithm is described in the full +reduce matching time, the automata merging algorithm is described in the full article. The second option is more interesting, as it allows matching of \verb/n/ independent patterns in $O(l)$ steps, where \verb/l/ is the amount of tokens to be matched. It is important to note as well that our method of