{"id":"https://openalex.org/W4399851420","doi":"https://doi.org/10.1145/3656431","title":"Linear Matching of JavaScript Regular Expressions","display_name":"Linear Matching of JavaScript Regular Expressions","publication_year":2024,"publication_date":"2024-06-20","ids":{"openalex":"https://openalex.org/W4399851420","doi":"https://doi.org/10.1145/3656431"},"language":"en","primary_location":{"id":"doi:10.1145/3656431","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656431","pdf_url":null,"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://doi.org/10.1145/3656431","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5041214466","display_name":"Aur\u00e8le Barri\u00e8re","orcid":"https://orcid.org/0000-0002-7297-2170"},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Aur\u00e8le Barri\u00e8re","raw_affiliation_strings":["EPFL, Lausanne, Switzerland"],"raw_orcid":"https://orcid.org/0000-0002-7297-2170","affiliations":[{"raw_affiliation_string":"EPFL, Lausanne, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5018186543","display_name":"Cl\u00e9ment Pit-Claudel","orcid":"https://orcid.org/0000-0002-1900-3901"},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Cl\u00e9ment Pit-Claudel","raw_affiliation_strings":["EPFL, Lausanne, Switzerland"],"raw_orcid":"https://orcid.org/0000-0002-1900-3901","affiliations":[{"raw_affiliation_string":"EPFL, Lausanne, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I5124864"],"apc_list":null,"apc_paid":null,"fwci":4.3941,"has_fulltext":true,"cited_by_count":10,"citation_normalized_percentile":{"value":0.95306342,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":"8","issue":"PLDI","first_page":"1336","last_page":"1360"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9984999895095825,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9984999895095825,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9944000244140625,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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/T12016","display_name":"Web Data Mining and Analysis","score":0.9894000291824341,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/javascript","display_name":"JavaScript","score":0.7770962715148926},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.47866663336753845},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.4697110056877136},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.448344886302948},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.32723188400268555},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.32584625482559204},{"id":"https://openalex.org/keywords/statistics","display_name":"Statistics","score":0.1479288637638092},{"id":"https://openalex.org/keywords/philosophy","display_name":"Philosophy","score":0.094605952501297}],"concepts":[{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.7770962715148926},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.47866663336753845},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.4697110056877136},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.448344886302948},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.32723188400268555},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.32584625482559204},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.1479288637638092},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.094605952501297}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3656431","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656431","pdf_url":null,"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"},{"id":"pmh:oai:infoscience.epfl.ch:20.500.14299/243115","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/243115","pdf_url":"https://infoscience.epfl.ch/bitstreams/738ad59c-30d0-44a2-91f4-8c6a576f58df/download","source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I5124864","host_organization_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","host_organization_lineage":["https://openalex.org/I5124864"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"research article"}],"best_oa_location":{"id":"doi:10.1145/3656431","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656431","pdf_url":null,"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":[{"score":0.7400000095367432,"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":29,"referenced_works":["https://openalex.org/W87129872","https://openalex.org/W1564013439","https://openalex.org/W2028637393","https://openalex.org/W2035448420","https://openalex.org/W2072607050","https://openalex.org/W2082135413","https://openalex.org/W2101547548","https://openalex.org/W2460699391","https://openalex.org/W2506796853","https://openalex.org/W2603401210","https://openalex.org/W2611059838","https://openalex.org/W2748837517","https://openalex.org/W2760683747","https://openalex.org/W2888047193","https://openalex.org/W2899462170","https://openalex.org/W2968339949","https://openalex.org/W3091491979","https://openalex.org/W3093164660","https://openalex.org/W3156471679","https://openalex.org/W3156862845","https://openalex.org/W3157903927","https://openalex.org/W4281772816","https://openalex.org/W4287634532","https://openalex.org/W4362677176","https://openalex.org/W4366504032","https://openalex.org/W4379518504","https://openalex.org/W4379534108","https://openalex.org/W4390604686","https://openalex.org/W6948510690"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2461078469","https://openalex.org/W123790205","https://openalex.org/W2085515337","https://openalex.org/W3087706721","https://openalex.org/W4287664162","https://openalex.org/W1979597421","https://openalex.org/W3102852402","https://openalex.org/W4385695489","https://openalex.org/W827014118"],"abstract_inverted_index":{"Modern":[0],"regex":[1,26,45,75,141,161,185],"languages":[2],"have":[3,202],"strayed":[4],"far":[5],"from":[6,31,110],"well-understood":[7],"traditional":[8],"regular":[9],"expressions:":[10],"they":[11],"include":[12],"features":[13,118],"that":[14,85],"fundamentally":[15],"transform":[16],"the":[17,51,83,94,137,145,207],"matching":[18,61,142,150],"problem.":[19],"In":[20,93],"exchange":[21],"for":[22,149,184],"these":[23,54],"features,":[24],"modern":[25],"engines":[27],"at":[28],"times":[29],"suffer":[30],"exponential":[32],"complexity":[33,62,182],"blowups,":[34],"a":[35,70,79,166,197],"frequent":[36],"source":[37],"of":[38,53,82,188],"denial-of-service":[39],"vulnerabilities":[40],"in":[41,139,152,159,196,206,212],"JavaScript":[42,167,209],"applications.":[43],"Worse,":[44],"semantics":[46,76],"differ":[47],"across":[48],"languages,":[49],"and":[50,59,131,163,173,180,200,214],"impact":[52],"divergences":[55],"on":[56,73],"algorithmic":[57],"design":[58],"worst-case":[60],"has":[63],"seldom":[64],"been":[65,204],"investigated.":[66],"This":[67],"paper":[68],"provides":[69],"novel":[71,126],"perspective":[72],"JavaScript\u2019s":[74],"by":[77,143],"identifying":[78],"larger-than-previously-understood":[80],"subset":[81],"language":[84],"can":[86],"be":[87,121],"matched":[88,122],"with":[89],"linear":[90,132,140,153],"time":[91,179],"guarantees.":[92],"process,":[95],"we":[96,176,193],"discover":[97],"several":[98],"cases":[99],"where":[100],"state-of-the-art":[101,138],"algorithms":[102,127,148,190],"were":[103],"either":[104],"wrong":[105],"(semantically":[106],"incorrect),":[107],"inefficient":[108],"(suffering":[109],"superlinear":[111],"complexity)":[112],"or":[113],"excessively":[114],"restrictive":[115],"(assuming":[116],"certain":[117],"could":[119],"not":[120],"linearly).":[123],"We":[124,134],"introduce":[125],"to":[128,169],"restore":[129],"correctness":[130],"complexity.":[133],"further":[135],"advance":[136],"presenting":[144],"first":[146],"nonbacktracking":[147],"lookarounds":[151],"time:":[154],"one":[155],"supporting":[156],"captureless":[157],"lookbehinds":[158],"any":[160],"language,":[162],"another":[164],"leveraging":[165],"property":[168],"support":[170],"unrestricted":[171],"lookaheads":[172],"lookbehinds.":[174],"Finally,":[175],"describe":[177],"new":[178],"space":[181],"tradeoffs":[183],"engines.":[186],"All":[187],"our":[189],"are":[191],"practical:":[192],"validated":[194],"them":[195],"prototype":[198],"implementation,":[199],"some":[201],"also":[203],"merged":[205],"V8":[208],"implementation":[210],"used":[211],"Chrome":[213],"Node.js.":[215]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":7},{"year":2024,"cited_by_count":1}],"updated_date":"2026-08-24T07:32:12.397491","created_date":"2025-10-10T00:00:00"}
