2019
DOI: 10.1145/3360565
|View full text |Cite
|
Sign up to set email alerts
|

Automatic repair of regular expressions

Abstract: We introduce RFixer, a tool for repairing complex regular expressions using examples. Given an incorrect regular expression and sets of positive and negative examples, RFixer synthesizes the closest regular expression to the original one that is consistent with the examples. Automatically repairing regular expressions requires exploring a large search space because practical regular expressions: i) are large, ii) operate over very large alphabetsÐe.g., UTF-16 and ASCIIÐand iii) employ complex constructsÐe.g., … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
30
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 26 publications
(30 citation statements)
references
References 22 publications
0
30
0
Order By: Relevance
“…A task is considered successfully done, if the output expression is semantically equivalent to the ground-truth of that task. We used an off-the-shelf tool, RFixer [Pan et al 2019], for deciding if two expressions are semantically equivalent. If the 6 presents the accuracy of nlx-reg and the baseline systems when applied on the DeepRegex (6a) and on the StackOverflow (6b) data-sets.…”
Section: Methodsmentioning
confidence: 99%
“…A task is considered successfully done, if the output expression is semantically equivalent to the ground-truth of that task. We used an off-the-shelf tool, RFixer [Pan et al 2019], for deciding if two expressions are semantically equivalent. If the 6 presents the accuracy of nlx-reg and the baseline systems when applied on the DeepRegex (6a) and on the StackOverflow (6b) data-sets.…”
Section: Methodsmentioning
confidence: 99%
“…There are various drawbacks or limitations in existing repair techniques, such as only supporting positive or negative ex amples [26], [27], not supporting regexes with the conjunction (&) operator, or having the problems of under-fitting/overfitting [20], [28], To overcome these drawbacks or limitations, we present a novel and efficient algorithm, Sy n C o r r , based on Neighborhood Search (NS) to repair an incorrect regex to achieve that the repaired regex is consistent with the examples. Particularly Sy n C o r r alleviates the under-fitting/over-fitting problem, via preserving the integrity of the small sub-regexes.…”
Section: Therefore To Better Synthesize Regexes It Would Be Ideal To Take Advantage Of Both Nl and Examples (Called Nlp-andexample-based mentioning
confidence: 99%
“…Then Sy n Co r r calls the function transformations to get the neighbours of r, i.e., some abstract regexes (e.g., <VOW><S> (<NUM>) <Qr ><S>) that input an incorrect regex r0: ([AE10Uaeiou],*[0 -9],*){7,} r <-preprocessor^, = 0): (< V 0 W X S X N U M > < S > )< Q 7 > JV(r) «-trans form at ions (?) : In addition, it is worth noting that on the same example and the incorrect regex mentioned above, the repair tool RFix e r [28] produces the incorrect regex ( [AEeiO01234U56789] . * [0 -9 ] .…”
Section: Ov E R V Ie Wmentioning
confidence: 99%
“…Therefore, to repair a faulty regular expression, a new set of negative examples are required and the goal is to modify the original expression so that it rejects the new examples. On the contrary, Rebele [84] focused on repairing regular expressions that define languages smaller than the intended ones. Thus, a new set of positive examples is provided, and the goal is to modify the original expression so that it accepts the new examples.…”
Section: Repairingmentioning
confidence: 99%
“…To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/. Testing status [14] RE coverage based [33] From positive examples [52] Syntax check [10] Highlight [72−74] Based on positive examples [83] Bug classification [22] DFA coverage based [11] From both examples [53−57] Semantic check [68−70] Automaton graph [75−79] Based on negative examples [84] Feature usage [8] Mutation based [49] Gold′s learning [59−61] Verification [71] Tree view [74,80] Based on both examples [85] Evolution [24] Sampling [40,41] From specifications [62−64] Visual IDE [81] Based on genetic programming [88,89] Comprehension [23] Enumerating [91] From specifications and examples [66] Visual structure [82] Interactive repair [90] Composition [25] Random [45,47] Abstraction [12] Repair vulnerable [86,87] Portability [28] Systematic [46−48] Development cycle [30] Determinism [32] Readability [92]…”
Section: Open Accessmentioning
confidence: 99%