ninems/ninems.tex
changeset 85 ba40ab3658ca
parent 84 de50a65d1b15
child 86 51ac1ab6e1fd
equal deleted inserted replaced
84:de50a65d1b15 85:ba40ab3658ca
  1232 from $v$ is not so straightforward. The point of this is that  we might
  1232 from $v$ is not so straightforward. The point of this is that  we might
  1233 be able to finally bridge the gap by proving
  1233 be able to finally bridge the gap by proving
  1234 
  1234 
  1235 \begin{center}
  1235 \begin{center}
  1236 $\textit{retrieve} \; (r^\uparrow   \backslash  s) \; v = \;\textit{retrieve} \;
  1236 $\textit{retrieve} \; (r^\uparrow   \backslash  s) \; v = \;\textit{retrieve} \;
  1237 \textit{simp}(r^\uparrow)  \backslash  s \; v'$
  1237 (\textit{simp}(r^\uparrow)  \backslash  s) \; v'$
  1238 \end{center}
  1238 \end{center}
  1239 
  1239 
  1240 \noindent
  1240 \noindent
  1241 and subsequently
  1241 and subsequently
  1242 
  1242 
  1277 deal more efficiently with back-references, which are one of the
  1277 deal more efficiently with back-references, which are one of the
  1278 reasons why regular expression engines in JavaScript, Python and Java
  1278 reasons why regular expression engines in JavaScript, Python and Java
  1279 choose to not implement the classic automata approach of transforming
  1279 choose to not implement the classic automata approach of transforming
  1280 regular expressions into NFAs and then DFAs---because we simply do not
  1280 regular expressions into NFAs and then DFAs---because we simply do not
  1281 know how such back-references can be represented by DFAs.
  1281 know how such back-references can be represented by DFAs.
  1282 
  1282 We also plan to implement the bitcoded algorithm
       
  1283 in some imperative language like C to see if the inefficiency of the 
       
  1284 Scala implementation
       
  1285 is language specific. To make this research more comprehensive we also plan
       
  1286 to contrast our (faster) version of bitcoded algorithm with the
       
  1287 Symbolic Regex Matcher, the RE2, the Rust Regex Engine, and the static
       
  1288 analysis approach by implementing them in the same language and then compare
       
  1289 their performance.
  1283 
  1290 
  1284 \bibliographystyle{plain}
  1291 \bibliographystyle{plain}
  1285 \bibliography{root}
  1292 \bibliography{root}
  1286 
  1293 
  1287 
  1294