Regular Expression Matching using Bit Vector Automata
Regular Expression Matching using Bit Vector Automata
复制标题
使用位向量自动机进行正则表达式匹配
DOI:
10.1145/3586044
复制
发表时间:
2023
影响因子:
--
通讯作者:
Mamouras, Konstantinos
中科院分区:
文献类型:
--
作者:
Le Glaunec, Alexis;Kong, Lingkun;Mamouras, Konstantinos
Regular expressions (regexes) are ubiquitous in modern software. There is a variety of implementation techniques for regex matching, which can be roughly categorized as (1) relying on backtracking search, or (2) being based on finite-state automata. The implementations that use backtracking are often chosen due to their ability to support advanced pattern-matching constructs. Unfortunately, they are known to suffer from severe performance problems. For some regular expressions, the running time for matching can be exponential in the size of the input text. In order to provide stronger guarantees of matching efficiency, automata-based regex matching is the preferred choice. However, even these regex engines may exhibit severe performance degradation for some patterns. The main reason for this is that regexes used in practice are not exclusively built from the classical regular constructs, i.e., concatenation, nondeterministic choice and Kleene's star. They involve additional constructs that provide succinctness and convenience of expression. The most common such construct is bounded repetition (also called counting), which describes the repetition of the pattern a fixed number of times.In this paper, we propose a new algorithm for the efficient matching of regular expressions that involve bounded repetition. Our algorithms are based on a new model of automata, which we call nondeterministic bit vector automata (NBVA). This model is chosen to be expressively equivalent to nondeterministic counter automata with bounded counters, a very natural model for expressing patterns with bounded repetition. We show that there is a class of regular expressions with bounded repetition that can be matched in time that is independent from the repetition bounds. Our algorithms are general enough to cover the vast majority of challenging bounded repetitions that arise in practice. We provide an implementation of our approach in a regex engine, which we call BVA-Scan. We compare BVA-Scan against state-of-the-art regex engines on several real datasets.
登录
查看更多内容
DOI:
10.1007/978-3-030-88494-9_8
发表时间:
2021
期刊:
Runtime Verification 2021
影响因子:
--
作者:
Mamouras, Konstantinos;Chattopadhyay, Agnishom;Wang, Zhifu
通讯作者:
Wang, Zhifu
DOI:
--
发表时间:
2016
期刊:
IEEE/ACM Transactions on Computational Biology & Bioinformatics
影响因子:
--
作者:
Indranil Roy;S. Aluru
通讯作者:
S. Aluru
影响因子:
--
作者:
H. Barringer;A. Goldberg;K. Havelund;Koushik Sen
通讯作者:
H. Barringer;A. Goldberg;K. Havelund;Koushik Sen
DOI:
10.1109/tcad.2020.3013053
发表时间:
2020
影响因子:
2.9
作者:
Mamouras, Konstantinos;Wang, Zhifu
通讯作者:
Wang, Zhifu
DOI:
--
发表时间:
2019
期刊:
ESEC/SIGSOFT FSE
影响因子:
--
作者:
James C. Davis
通讯作者:
James C. Davis