Why Aren’t Regular Expressions a Lingua Franca? An Empirical Study on the Re-use and Portability of Regular Expressions.

dc.contributor.authorLee, Dongyoon
dc.contributor.authorDavis, James C.
dc.contributor.authorMichael IV, Louis G.
dc.contributor.authorCoghlan, Christy A.
dc.contributor.authorServant-Cortés, Francisco Javier
dc.date.accessioned2024-10-30T13:31:32Z
dc.date.available2024-10-30T13:31:32Z
dc.date.issued2019
dc.departamentoInstituto de Tecnología e Ingeniería del Software de la Universidad de Málaga
dc.description.abstractThis paper explores the extent to which regular expressions (regexes) are portable across programming languages. Many languages offer similar regex syntaxes, and it would be natural to assume that regexes can be ported across language boundaries. But can regexes be copy/pasted across language boundaries while retaining their semantic and performance characteristics? In our survey of 158 professional software developers, most indicated that they re-use regexes across language boundaries and about half reported that they believe regexes are a universal language. We experimentally evaluated the riskiness of this practice using a novel regex corpus — 537,806 regexes from 193,524 projects written in JavaScript, Java, PHP, Python, Ruby, Go, Perl, and Rust. Using our polyglot regex corpus, we explored the hitherto-unstudied regex portability problems: logic errors due to semantic differences, and security vulnerabilities due to performance differences. We report that developers’ belief in a regex lingua franca is understandable but unfounded. Though most regexes compile across language boundaries, 15% exhibit semantic differences across languages and 10% exhibit performance differences across languages. We explained these differences using regex documentation, and further illuminate our findings by investigating regex engine implementations. Along the way we found bugs in the regex engines of JavaScript-V8, Python, Ruby, and Rust, and potential semantic and performance regex bugs in thousands of modules.es_ES
dc.identifier.citationJames C. Davis, Louis G. Michael IV, Christy A. Coghlan, Francisco Servant, and Dongyoon Lee. 2019. Why aren’t regular expressions a lingua franca? an empirical study on the re-use and portability of regular expressions. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2019). Association for Computing Machinery, New York, NY, USA, 443–454. https://doi.org/10.1145/3338906.3338909es_ES
dc.identifier.urihttps://hdl.handle.net/10630/34961
dc.language.isoenges_ES
dc.publisherACMes_ES
dc.relation.eventdateAgosto 2019es_ES
dc.relation.eventplaceTallinn, Estoniaes_ES
dc.relation.eventtitleJoint Meeting on European Software Engineering Conference and Symposium on the Foundations of Softwrae Engineering (ESEC/FSE)es_ES
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 Internacional*
dc.rights.accessRightsopen accesses_ES
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/*
dc.subjectAplicaciones informáticas - Desarrolloes_ES
dc.subject.otherSoftware reusabilityes_ES
dc.subject.otherSoftware maintenancees_ES
dc.subject.otherSoftware engineeringes_ES
dc.titleWhy Aren’t Regular Expressions a Lingua Franca? An Empirical Study on the Re-use and Portability of Regular Expressions.es_ES
dc.typeconference outputes_ES
dspace.entity.typePublication
relation.isAuthorOfPublicationb5f2808e-94a0-4ab9-ba6e-9e121af1dd03
relation.isAuthorOfPublication.latestForDiscoveryb5f2808e-94a0-4ab9-ba6e-9e121af1dd03

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
2019-FSE-Davis-3-self-archival.pdf
Size:
1.21 MB
Format:
Adobe Portable Document Format
Description: