{"id":"https://openalex.org/W4362677176","doi":"https://doi.org/10.1145/3586044","title":"Regular Expression Matching using Bit Vector Automata","display_name":"Regular Expression Matching using Bit Vector Automata","publication_year":2023,"publication_date":"2023-04-06","ids":{"openalex":"https://openalex.org/W4362677176","doi":"https://doi.org/10.1145/3586044"},"language":"en","primary_location":{"id":"doi:10.1145/3586044","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3586044","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3586044","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3586044","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5044196182","display_name":"Alexis Le Glaunec","orcid":"https://orcid.org/0000-0002-5444-5924"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Alexis Le Glaunec","raw_affiliation_strings":["Rice University, USA"],"raw_orcid":"https://orcid.org/0000-0002-5444-5924","affiliations":[{"raw_affiliation_string":"Rice University, USA","institution_ids":["https://openalex.org/I74775410"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5064966549","display_name":"Lingkun Kong","orcid":"https://orcid.org/0000-0003-0672-2998"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Lingkun Kong","raw_affiliation_strings":["Rice University, USA"],"raw_orcid":"https://orcid.org/0000-0003-0672-2998","affiliations":[{"raw_affiliation_string":"Rice University, USA","institution_ids":["https://openalex.org/I74775410"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5052392314","display_name":"Konstantinos Mamouras","orcid":"https://orcid.org/0000-0003-1209-7738"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Konstantinos Mamouras","raw_affiliation_strings":["Rice University, USA"],"raw_orcid":"https://orcid.org/0000-0003-1209-7738","affiliations":[{"raw_affiliation_string":"Rice University, USA","institution_ids":["https://openalex.org/I74775410"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5044196182"],"corresponding_institution_ids":["https://openalex.org/I74775410"],"apc_list":null,"apc_paid":null,"fwci":6.2841,"has_fulltext":true,"cited_by_count":21,"citation_normalized_percentile":{"value":0.97195977,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":99},"biblio":{"volume":"7","issue":"OOPSLA1","first_page":"492","last_page":"521"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T12326","display_name":"Network Packet Processing and Optimization","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T12326","display_name":"Network Packet Processing and Optimization","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11567","display_name":"semigroups and automata theory","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11269","display_name":"Algorithms and Data Compression","score":0.9976000189781189,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/regular-expression","display_name":"Regular expression","score":0.8519026041030884},{"id":"https://openalex.org/keywords/nondeterministic-algorithm","display_name":"Nondeterministic algorithm","score":0.6583975553512573},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6199225783348083},{"id":"https://openalex.org/keywords/bounded-function","display_name":"Bounded function","score":0.5654967427253723},{"id":"https://openalex.org/keywords/succinctness","display_name":"Succinctness","score":0.557216465473175},{"id":"https://openalex.org/keywords/nondeterministic-finite-automaton","display_name":"Nondeterministic finite automaton","score":0.5269891619682312},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4800875782966614},{"id":"https://openalex.org/keywords/pushdown-automaton","display_name":"Pushdown automaton","score":0.445107638835907},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.42359307408332825},{"id":"https://openalex.org/keywords/automata-theory","display_name":"Automata theory","score":0.41629719734191895},{"id":"https://openalex.org/keywords/finite-state-machine","display_name":"Finite-state machine","score":0.4136982858181},{"id":"https://openalex.org/keywords/automaton","display_name":"Automaton","score":0.3919847011566162},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3529983460903168},{"id":"https://openalex.org/keywords/discrete-mathematics","display_name":"Discrete mathematics","score":0.34244224429130554},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.29215532541275024},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.11323279142379761}],"concepts":[{"id":"https://openalex.org/C121329065","wikidata":"https://www.wikidata.org/wiki/Q185612","display_name":"Regular expression","level":2,"score":0.8519026041030884},{"id":"https://openalex.org/C176181172","wikidata":"https://www.wikidata.org/wiki/Q3490301","display_name":"Nondeterministic algorithm","level":2,"score":0.6583975553512573},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6199225783348083},{"id":"https://openalex.org/C34388435","wikidata":"https://www.wikidata.org/wiki/Q2267362","display_name":"Bounded function","level":2,"score":0.5654967427253723},{"id":"https://openalex.org/C2776493592","wikidata":"https://www.wikidata.org/wiki/Q5158717","display_name":"Succinctness","level":2,"score":0.557216465473175},{"id":"https://openalex.org/C158008952","wikidata":"https://www.wikidata.org/wiki/Q617295","display_name":"Nondeterministic finite automaton","level":4,"score":0.5269891619682312},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4800875782966614},{"id":"https://openalex.org/C77944639","wikidata":"https://www.wikidata.org/wiki/Q751443","display_name":"Pushdown automaton","level":3,"score":0.445107638835907},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.42359307408332825},{"id":"https://openalex.org/C116248031","wikidata":"https://www.wikidata.org/wiki/Q214526","display_name":"Automata theory","level":3,"score":0.41629719734191895},{"id":"https://openalex.org/C167822520","wikidata":"https://www.wikidata.org/wiki/Q176452","display_name":"Finite-state machine","level":2,"score":0.4136982858181},{"id":"https://openalex.org/C112505250","wikidata":"https://www.wikidata.org/wiki/Q787116","display_name":"Automaton","level":2,"score":0.3919847011566162},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3529983460903168},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.34244224429130554},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.29215532541275024},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.11323279142379761},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3586044","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3586044","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3586044","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3586044","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3586044","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3586044","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G6214416324","display_name":null,"funder_award_id":"2008096","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320310133","display_name":"Rice University","ror":"https://ror.org/008zs3103"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4362677176.pdf","grobid_xml":"https://content.openalex.org/works/W4362677176.grobid-xml"},"referenced_works_count":35,"referenced_works":["https://openalex.org/W1559305750","https://openalex.org/W1577337656","https://openalex.org/W1825341937","https://openalex.org/W1834456443","https://openalex.org/W1972418517","https://openalex.org/W1981409766","https://openalex.org/W1985108724","https://openalex.org/W1998084650","https://openalex.org/W2007464118","https://openalex.org/W2030102079","https://openalex.org/W2062949766","https://openalex.org/W2072607050","https://openalex.org/W2077450865","https://openalex.org/W2090921231","https://openalex.org/W2094985106","https://openalex.org/W2099964107","https://openalex.org/W2108962885","https://openalex.org/W2111990320","https://openalex.org/W2134826720","https://openalex.org/W2141607151","https://openalex.org/W2155744824","https://openalex.org/W2156429182","https://openalex.org/W2293046879","https://openalex.org/W2785700716","https://openalex.org/W2794757234","https://openalex.org/W2922634639","https://openalex.org/W2968966662","https://openalex.org/W2985661840","https://openalex.org/W3090131141","https://openalex.org/W3091491979","https://openalex.org/W3092534483","https://openalex.org/W3137814233","https://openalex.org/W3144157896","https://openalex.org/W3202468961","https://openalex.org/W4281667938"],"related_works":["https://openalex.org/W4297686518","https://openalex.org/W2159133812","https://openalex.org/W2067443406","https://openalex.org/W1572416198","https://openalex.org/W2494167956","https://openalex.org/W2030569822","https://openalex.org/W1423874546","https://openalex.org/W2083848761","https://openalex.org/W1528622786","https://openalex.org/W4239452451"],"abstract_inverted_index":{"Regular":[0],"expressions":[1,186,243],"(regexes)":[2],"are":[3,41,55,122,193,262],"ubiquitous":[4],"in":[5,75,120,251,276,285],"modern":[6],"software.":[7],"There":[8],"is":[9,94,116,154,211,238,254],"a":[10,167,177,196,224,239,286],"variety":[11],"of":[12,78,88,147,164,170,184,199,241,270,282],"implementation":[13,281],"techniques":[14],"for":[15,70,108,114,180,228],"regex":[16,92,101,287,298],"matching,":[17],"which":[18,160,201,289],"can":[19,72,248],"be":[20,73,214,249],"roughly":[21],"categorized":[22],"as":[23],"(1)":[24],"relying":[25],"on":[26,33,195,300],"backtracking":[27,40],"search,":[28],"or":[29],"(2)":[30],"being":[31],"based":[32,194],"finite-state":[34],"automata.":[35],"The":[36,111,149],"implementations":[37],"that":[38,117,142,187,236,247,253,274],"use":[39],"often":[42],"chosen":[43,212],"due":[44],"to":[45,48,57,84,213,217,265],"their":[46],"ability":[47],"support":[49],"advanced":[50],"pattern-matching":[51],"constructs.":[52],"Unfortunately,":[53],"they":[54],"known":[56],"suffer":[58],"from":[59,126,256],"severe":[60,105],"performance":[61,106],"problems.":[62],"For":[63],"some":[64,109],"regular":[65,129,185,242],"expressions,":[66],"the":[67,76,79,95,127,162,165,181,257,267],"running":[68],"time":[69,252],"matching":[71,89,93,183],"exponential":[74],"size":[77],"input":[80],"text.":[81],"In":[82,172],"order":[83],"provide":[85,143,279],"stronger":[86],"guarantees":[87],"efficiency,":[90],"automata-based":[91],"preferred":[96],"choice.":[97],"However,":[98],"even":[99],"these":[100],"engines":[102,299],"may":[103],"exhibit":[104],"degradation":[107],"patterns.":[110],"main":[112],"reason":[113],"this":[115,173],"regexes":[118],"used":[119],"practice":[121],"not":[123],"exclusively":[124],"built":[125],"classical":[128],"constructs,":[130],"i.e.,":[131],"concatenation,":[132],"nondeterministic":[133,204,218],"choice":[134],"and":[135,145],"Kleene's":[136],"star.":[137],"They":[138],"involve":[139,188],"additional":[140],"constructs":[141],"succinctness":[144],"convenience":[146],"expression.":[148],"most":[150],"common":[151],"such":[152],"construct":[153],"bounded":[155,189,222,232,245,272],"repetition":[156,163,246,258],"(also":[157],"called":[158],"counting),":[159],"describes":[161],"pattern":[166],"fixed":[168],"number":[169],"times.":[171],"paper,":[174],"we":[175,202,290],"propose":[176],"new":[178,197],"algorithm":[179],"efficient":[182],"repetition.":[190,233],"Our":[191,260],"algorithms":[192,261],"model":[198,210,227],"automata,":[200],"call":[203,291],"bit":[205],"vector":[206],"automata":[207,220],"(NBVA).":[208],"This":[209],"expressively":[215],"equivalent":[216],"counter":[219],"with":[221,231,244],"counters,":[223],"very":[225],"natural":[226],"expressing":[229],"patterns":[230],"We":[234,278,293],"show":[235],"there":[237],"class":[240],"matched":[250],"independent":[255],"bounds.":[259],"general":[263],"enough":[264],"cover":[266],"vast":[268],"majority":[269],"challenging":[271],"repetitions":[273],"arise":[275],"practice.":[277],"an":[280],"our":[283],"approach":[284],"engine,":[288],"BVA-Scan.":[292],"compare":[294],"BVA-Scan":[295],"against":[296],"state-of-the-art":[297],"several":[301],"real":[302],"datasets.":[303]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":10},{"year":2024,"cited_by_count":8},{"year":2023,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
