more
authorChengsong
Sat, 17 Dec 2022 22:39:55 +0000
changeset 632 99eceee5c4ac
parent 631 bdb3ffdd39f8
child 633 f1edd5ee1a12
more
ChengsongTanPhdThesis/Chapters/RelatedWork.tex
--- a/ChengsongTanPhdThesis/Chapters/RelatedWork.tex	Thu Dec 08 00:19:56 2022 +0000
+++ b/ChengsongTanPhdThesis/Chapters/RelatedWork.tex	Sat Dec 17 22:39:55 2022 +0000
@@ -119,17 +119,14 @@
 But having the ordering relation taking regular expression as parameters
 causes the transitivity of their ordering to not go through.
 
-
-When a regular expression engine does not behave as intended (for example,
-getting excruciatingly slow on 
-a relatively simple regex pattern $(a^*)^*b$
-and a string $a\ldots a$ that is obviously
-not part of that regex)
-programmers usually try to rewrite the regex to some equivalent form.
-
+When faced with catastrophic backtracking, 
+sometimes programmers 
+have to rewrite their regexes in an ad hoc fashion.
+Knowing which patterns should be avoided
+can be helpful.
+\subsection{Static Analysis of Evil Regex Patterns} 
 or they try to avoid the possibly problematic patterns completely,
 for which many false positives exist\parencite{Davis18}.
-\subsection{Static Analysis of Evil Regex Patterns} 
 Animated tools to "debug" regular expressions such as
  \parencite{regexploit2021} \parencite{regex101} are also popular.
 We are also aware of static analysis work on regular expressions that