Decision procedures for path feasibility of string-manipulating programs with complex operations
The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications....
Saved in:
| Published in | Proceedings of ACM on programming languages Vol. 3; no. POPL; pp. 1 - 30 |
|---|---|
| Main Authors | , , , , |
| Format | Journal Article |
| Language | English |
| Published |
New York, NY, USA
ACM
01.01.2019
|
| Subjects | |
| Online Access | Get full text |
| ISSN | 2475-1421 2475-1421 |
| DOI | 10.1145/3290362 |
Cover
| Abstract | The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications. A (symbolic) path is given as a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. Modern programming languages (e.g. JavaScript, PHP, and Python) support many complex string operations, and strings are also often implicitly modified during a computation in some intricate fashion (e.g. by some autoescaping mechanisms). In this paper we provide two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition (i.e. is an effectively recognisable relation), and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show that the semantic conditions are expressive since they are satisfied by a multitude of string operations including concatenation, one-way and two-way finite-state transducers, replaceall functions (where the replacement string could contain variables), string-reverse functions, regular-expression matching, and some (restricted) forms of letter-counting/length functions. The semantic conditions also strictly subsume existing decidable string theories (e.g. straight-line fragments, and acyclic logics), and most existing benchmarks (e.g. most of Kaluza’s, and all of SLOG’s, Stranger’s, and SLOTH’s benchmarks). Our semantic conditions also yield a conceptually simple decision procedure, as well as an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions into the solver by simply providing code for the pre-image computation without worrying about other parts of the solver. Despite these, the semantic conditions are unfortunately too general to provide a fast and complete decision procedure. We provide strong theoretical evidence for this in the form of complexity results. To rectify this problem, we propose two solutions. Our main solution is to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). This restriction is satisfied in many cases in practice, and yields decision procedures that are effective in both theory and practice. Whenever nondeterministic functions are still needed (e.g. the string function split), our second solution is to provide a syntactic fragment that provides a support of nondeterministic functions, and operations like one-way transducers, replaceall (with constant replacement string), the string-reverse function, concatenation, and regular-expression matching. We show that this fragment can be reduced to an existing solver SLOTH that exploits fast model checking algorithms like IC3. We provide an efficient implementation of our decision procedure (assuming our first solution above, i.e., deterministic partial string functions) in a new string solver OSTRICH. Our implementation provides built-in support for concatenation, reverse, functional transducers (FFT), and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers. |
|---|---|
| AbstractList | The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications. A (symbolic) path is given as a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. Modern programming languages (e.g. JavaScript, PHP, and Python) support many complex string operations, and strings are also often implicitly modified during a computation in some intricate fashion (e.g. by some autoescaping mechanisms).
In this paper we provide two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition (i.e. is an effectively recognisable relation), and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show that the semantic conditions are expressive since they are satisfied by a multitude of string operations including concatenation, one-way and two-way finite-state transducers, replaceall functions (where the replacement string could contain variables), string-reverse functions, regular-expression matching, and some (restricted) forms of letter-counting/length functions. The semantic conditions also strictly subsume existing decidable string theories (e.g. straight-line fragments, and acyclic logics), and most existing benchmarks (e.g. most of Kaluza’s, and all of SLOG’s, Stranger’s, and SLOTH’s benchmarks). Our semantic conditions also yield a conceptually simple decision procedure, as well as an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions into the solver by simply providing code for the pre-image computation without worrying about other parts of the solver. Despite these, the semantic conditions are unfortunately too general to provide a fast and complete decision procedure. We provide strong theoretical evidence for this in the form of complexity results. To rectify this problem, we propose two solutions. Our main solution is to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). This restriction is satisfied in many cases in practice, and yields decision procedures that are effective in both theory and practice. Whenever nondeterministic functions are still needed (e.g. the string function split), our second solution is to provide a syntactic fragment that provides a support of nondeterministic functions, and operations like one-way transducers, replaceall (with constant replacement string), the string-reverse function, concatenation, and regular-expression matching. We show that this fragment can be reduced to an existing solver SLOTH that exploits fast model checking algorithms like IC3.
We provide an efficient implementation of our decision procedure (assuming our first solution above, i.e., deterministic partial string functions) in a new string solver OSTRICH. Our implementation provides built-in support for concatenation, reverse, functional transducers (FFT), and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers. The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications. A (symbolic) path is given as a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. Modern programming languages (e.g. JavaScript, PHP, and Python) support many complex string operations, and strings are also often implicitly modified during a computation in some intricate fashion (e.g. by some autoescaping mechanisms). In this paper we provide two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition (i.e. is an effectively recognisable relation), and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show that the semantic conditions are expressive since they are satisfied by a multitude of string operations including concatenation, one-way and two-way finite-state transducers, replaceall functions (where the replacement string could contain variables), string-reverse functions, regular-expression matching, and some (restricted) forms of letter-counting/length functions. The semantic conditions also strictly subsume existing decidable string theories (e.g. straight-line fragments, and acyclic logics), and most existing benchmarks (e.g. most of Kaluza’s, and all of SLOG’s, Stranger’s, and SLOTH’s benchmarks). Our semantic conditions also yield a conceptually simple decision procedure, as well as an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions into the solver by simply providing code for the pre-image computation without worrying about other parts of the solver. Despite these, the semantic conditions are unfortunately too general to provide a fast and complete decision procedure. We provide strong theoretical evidence for this in the form of complexity results. To rectify this problem, we propose two solutions. Our main solution is to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). This restriction is satisfied in many cases in practice, and yields decision procedures that are effective in both theory and practice. Whenever nondeterministic functions are still needed (e.g. the string function split), our second solution is to provide a syntactic fragment that provides a support of nondeterministic functions, and operations like one-way transducers, replaceall (with constant replacement string), the string-reverse function, concatenation, and regular-expression matching. We show that this fragment can be reduced to an existing solver SLOTH that exploits fast model checking algorithms like IC3. We provide an efficient implementation of our decision procedure (assuming our first solution above, i.e., deterministic partial string functions) in a new string solver OSTRICH. Our implementation provides built-in support for concatenation, reverse, functional transducers (FFT), and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers. |
| ArticleNumber | 49 |
| Author | Chen, Taolue Hague, Matthew Wu, Zhilin Lin, Anthony W. Rümmer, Philipp |
| Author_xml | – sequence: 1 givenname: Taolue surname: Chen fullname: Chen, Taolue email: taolue.chen@gmail.com organization: Birkbeck University of London, UK – sequence: 2 givenname: Matthew surname: Hague fullname: Hague, Matthew email: matthew.hague@rhul.ac.uk organization: Royal Holloway University of London, UK – sequence: 3 givenname: Anthony W. surname: Lin fullname: Lin, Anthony W. email: anthony.w.to@gmail.com organization: University of Oxford, UK – sequence: 4 givenname: Philipp surname: Rümmer fullname: Rümmer, Philipp email: philipp.ruemmer@it.uu.se organization: Uppsala University, Sweden – sequence: 5 givenname: Zhilin surname: Wu fullname: Wu, Zhilin email: wuzl@ios.ac.cn organization: Institute of Software at Chinese Academy of Sciences, China |
| BackLink | https://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-398239$$DView record from Swedish Publication Index |
| BookMark | eNp1kL1PwzAQxS1UJEqp2Jm8wUDAn008Vi1fUiUWYDWOYxejJI7sRKX_PSktFUIw3Z3e753u3jEY1L42AJxidIUx49eUCEQn5AAMCUt5ghnBgx_9ERjH-I4QwoKyjIoheJ0b7aLzNWyC16bogonQ-gAb1b5Ba1R0uStdu4bewtgGVy-TStWu6UrV9sPGtgyqinDleoP2VVOaD-gbE3rd1_EEHFpVRjPe1RF4vr15mt0ni8e7h9l0kSiKWZswMhEmzbnIuNDYFBRxVhCcG86UFZYRa0wqCotUlhZWp7m1OEt5LmgheGopHYGL7d6ubtR6pcpSNsFVKqwlRnITjtyF06OXWzSuTNPle84rJ-fuZSp9WMquk1RkhIoeT7a4Dj7GYKzUrv16rg3KlX-sP__F_3_I2ZZUutpD3-InMmSOEw |
| CitedBy_id | crossref_primary_10_1145_3498707 crossref_primary_10_1002_smr_2647 crossref_primary_10_1145_3484198 crossref_primary_10_1016_j_jss_2023_111673 crossref_primary_10_1145_3428260 crossref_primary_10_1007_s00224_023_10154_8 crossref_primary_10_1007_s10270_020_00849_8 crossref_primary_10_1145_3632907 crossref_primary_10_4204_EPTCS_341_4 crossref_primary_10_1145_3571203 crossref_primary_10_1145_3373394_3373396 crossref_primary_10_1145_3622872 crossref_primary_10_1145_3649855 |
| Cites_doi | 10.1145/360248.360252 10.5555/2591370.2591389 10.1145/1064978.1065036 10.1145/3158092 10.1145/2837614.2837641 10.1145/3062341.3062384 10.1109/SP.2010.38 10.1145/2491411.2491447 10.1145/1081706.1081750 10.1145/2660267.2660372 10.1007/978-3-319-08867-9_43 10.1145/1180405.1180445 10.1145/2377656.2377662 10.1007/978-3-642-12002-2_13 10.1145/3158091 10.1145/2408776.2408795 10.1145/937555.937557 10.1007/978-3-319-08867-9_10 10.1145/371316.371512 10.1017/S0956796800003889 10.1145/2491411.2491456 10.1007/978-3-642-35873-9_14 10.1007/978-3-642-39611-3_21 10.1145/3040488 10.1007/978-3-642-00768-2_27 10.1145/1060745.1060809 10.1007/978-3-540-89439-1_20 10.1145/1995376.1995394 10.1145/2743014 10.1007/s10703-013-0189-1 10.1145/990308.990312 10.1145/876638.876642 10.1145/2643134 |
| ContentType | Journal Article |
| Copyright | Owner/Author |
| Copyright_xml | – notice: Owner/Author |
| DBID | AAYXX CITATION ACNBI ADTPV AOWAS D8T DF2 ZZAVC ADTOC UNPAY |
| DOI | 10.1145/3290362 |
| DatabaseName | CrossRef SWEPUB Uppsala universitet full text SwePub SwePub Articles SWEPUB Freely available online SWEPUB Uppsala universitet SwePub Articles full text Unpaywall for CDI: Periodical Content Unpaywall |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| Database_xml | – sequence: 1 dbid: UNPAY name: Unpaywall url: https://proxy.k.utb.cz/login?url=https://unpaywall.org/ sourceTypes: Open Access Repository |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 30 |
| ExternalDocumentID | 10.1145/3290362 oai_DiVA_org_uu_398239 10_1145_3290362 3290362 |
| GrantInformation_xml | – fundername: H2020 European Research Council grantid: 759969 funderid: http://dx.doi.org/10.13039/100010663 – fundername: Stiftelsen för Strategisk Forskning grantid: RIT17-0011 – fundername: National Natural Science Foundation of China grantid: 61472474,61572478,61872340 – fundername: Engineering and Physical Sciences Research Council grantid: EP/K009907/1,EP/P00430X/1 funderid: http://dx.doi.org/10.13039/501100000266 – fundername: Australian Research Council grantid: DP160101652, DP180100691 funderid: http://dx.doi.org/10.13039/100013102 – fundername: Vetenskapsrådet grantid: 2014-5484 funderid: http://dx.doi.org/10.13039/501100004359 |
| GroupedDBID | AAKMM AAYFX ACM ADPZR AIKLT ALMA_UNASSIGNED_HOLDINGS EBS GUFHI LHSKQ M~E OK1 ROL AAYXX AEFXT AEJOY AKRVB CITATION ACNBI ADTPV AOWAS D8T DF2 ZZAVC ADTOC UNPAY |
| ID | FETCH-LOGICAL-a314t-4269e7b59859c1ed3054d21be54af9f42fee79df0a87dfc7bff1875b93d957f33 |
| IEDL.DBID | UNPAY |
| ISSN | 2475-1421 |
| IngestDate | Sun Oct 26 04:15:29 EDT 2025 Thu Aug 21 06:25:49 EDT 2025 Wed Oct 01 05:55:25 EDT 2025 Thu Apr 24 23:13:02 EDT 2025 Mon Feb 24 21:14:27 EST 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | POPL |
| Keywords | String Constraints Transducers Straight-Line Programs Reverse Decision Procedures ReplaceAll |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution International 4.0 License. cc-by |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a314t-4269e7b59859c1ed3054d21be54af9f42fee79df0a87dfc7bff1875b93d957f33 |
| OpenAccessLink | https://proxy.k.utb.cz/login?url=https://dl.acm.org/doi/pdf/10.1145/3290362 |
| PageCount | 30 |
| ParticipantIDs | unpaywall_primary_10_1145_3290362 swepub_primary_oai_DiVA_org_uu_398239 crossref_citationtrail_10_1145_3290362 crossref_primary_10_1145_3290362 acm_primary_3290362 |
| ProviderPackageCode | CITATION AAYXX |
| PublicationCentury | 2000 |
| PublicationDate | 2019-01-01 |
| PublicationDateYYYYMMDD | 2019-01-01 |
| PublicationDate_xml | – month: 01 year: 2019 text: 2019-01-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationTitleAbbrev | ACM PACMPL |
| PublicationYear | 2019 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli. 2004. Abstract DPLL and Abstract DPLL Modulo Theories. In Logic for Programming, Artificial Intelligence, and Reasoning, 11th International Conference, LPAR 2004 (LNCS), Vol. 3452. Springer, 36–50. Yan Chen. 2018a. Solving String Constraints with ReplaceAll Function. Master’s thesis. State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, China. Vijay Ganesh, Mia Minnes, Armando Solar-Lezama, and Martin C. Rinard. 2012. Word Equations with Length Constraints: What’s Decidable?. In Hardware and Software: Verification and Testing - 8th International Haifa Verification Conference, HVC 2012, Haifa, Israel, November 6-8, 2012. Revised Selected Papers. Springer, 209–226. 10.1007/978-3-642-39611-3_21 Clark W. Barrett, Roberto Sebastiani, Sanjit A. Seshia, and Cesare Tinelli. 2009. Satisfiability Modulo Theories. In Handbook of Satisfiability. IOS Press, 825–885. Andrew van der Stock, Brian Glas, Neil Smithline, and Torsten Gigler. 2017. OWASP Top 10 – 2017. https://www.owasp. org/index.php/Top_10- 2017_Top_10 . Referred January 2018. Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2014. S3: A Symbolic String Solver for Vulnerability Detection in Web Applications. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, CCS 2014. ACM, 1232–1243. 10.1145/2660267.2660372 Taolue Chen, Matthew Hague, Anthony W. Lin, Philipp Rümmer, and Zhilin Wu. 2018b. Decision Procedures for Path Feasibility of String-Manipulating Programs with Complex Operations. CoRR abs/1811.03167 (2018). arXiv: 1811.03167 https://arxiv.org/abs/1811.03167 Nikolaj Bjørner, Nikolai Tillmann, and Andrei Voronkov. 2009. Path feasibility analysis for string-manipulating programs. In Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2009. Springer, 307–321. 10.1007/978-3-642-00768-2_27 Nicholas Pippenger. 2010. Theories of Computability. Cambridge University Press. Koushik Sen, Swaroop Kalasapur, Tasneem G. Brutch, and Simon Gibbs. 2013. Jalangi: a selective record-replay and dynamic analysis framework for JavaScript. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE’13, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 488–498. 10.1145/2491411.2491447 Fang Yu, Muath Alkhalaf, Tevfik Bultan, and Oscar H. Ibarra. 2014. Automata-based Symbolic String Analysis for Vulnerability Detection. Form. Methods Syst. Des. 44, 1 (2014), 44–70. 10.1007/s10703-013-0189-1 Taolue Chen, Yan Chen, Matthew Hague, Anthony W. Lin, and Zhilin Wu. 2018a. What is decidable about string constraints with the ReplaceAll function. PACMPL 2, POPL (2018), 3:1–3:29. 10.1145/3158091 Christophe Morvan. 2000. On Rational Graphs. In Foundations of Software Science and Computation Structures, Third International Conference, FOSSACS 2000. Springer, 252–266. Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2017. Flatten and conquer: a framework for efficient analysis of string constraints. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, Barcelona, Spain, June 18-23, 2017. ACM, New York, NY, USA, 602–617. 10.1145/3062341.3062384 Christel Baier and Joost-Pieter Katoen. 2008. Principles of Model Checking (Representation and Mind Series). The MIT Press. Hung-En Wang, Tzung-Lin Tsai, Chun-Han Lin, Fang Yu, and Jie-Hong R. Jiang. 2016. String Analysis via Automata Manipulation with Logic Circuit Representation. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I (Lecture Notes in Computer Science), Vol. 9779. Springer, 241–260. Leonid Libkin. 2003. Variable independence for first-order definable constraints. ACM Trans. Comput. Log. 4, 4 (2003), 431–451. 10.1145/937555.937557 Olivier Carton, Christian Choffrut, and Serge Grigorieff. 2006. Decision problems among the main subfamilies of rational relations. ITA 40, 2 (2006), 255–275. Joost Engelfriet and Hendrik Jan Hoogeboom. 2001. MSO definable string transductions and two-way finite-state transducers. ACM Trans. Comput. Log. 2, 2 (2001), 216–254. 10.1145/371316.371512 Artur Jez. 2016. Recompression: A Simple and Powerful Technique for Word Equations. J. ACM 63, 1 (2016), 4:1–4:51. 10.1145/2743014 Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, and Morgan Deters. 2014. A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 646–662. 10.1007/978-3-319-08867-9_43 Prateek Saxena, Devdatta Akhawe, Steve Hanna, Feng Mao, Stephen McCamant, and Dawn Song. 2010. A Symbolic Execution Framework for JavaScript. In 31st IEEE Symposium on Security and Privacy, S&P 2010, 16-19 May 2010, Berleley/Oakland, California, USA. IEEE, 513–528. 10.1109/SP.2010.38 Emmanuel Filiot, Olivier Gauwin, Pierre-Alain Reynier, and Frédéric Servais. 2013. From Two-Way to One-Way Finite State Transducers. In 28th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2013, New Orleans, LA, USA, June 25-28, 2013. IEEE Computer Society, 468–477. Volker Diekert. 2002. Makanin’s Algorithm. In Algebraic Combinatorics on Words, M. Lothaire (Ed.). Encyclopedia of Mathematics and its Applications, Vol. 90. Cambridge University Press, Chapter 12, 387–442. John E. Hopcroft and Jeffrey D. Ullman. 1979. Introduction to Automata Theory, Languages and Computation. Addison-Wesley. Rajeev Alur and Jyotirmoy V. Deshmukh. 2011. Nondeterministic Streaming String Transducers. In Automata, Languages and Programming - 38th International Colloquium, ICALP 2011, Zurich, Switzerland, July 4-8, 2011, Proceedings, Part II. Springer, 1–20. Michael Benedikt, Leonid Libkin, Thomas Schwentick, and Luc Segoufin. 2003. Definable relations and first-order query languages over strings. J. ACM 50, 5 (2003), 694–751. 10.1145/876638.876642 Yan Chen. 2018b. Z3-replaceall. https://github.com/TinyYan/z3- replaceAll . Referred in Jan 2018. Margus Veanes, Nikolaj Bjørner, Lev Nachmanson, and Sergey Bereg. 2017. Monadic Decomposition. J. ACM 64, 2 (2017), 14:1–14:28. 10.1145/3040488 Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2018. TRAU: SMT Solver for String Constraints. In Formal Methods in Computer Aided Design, FMCAD 2018. To appear. Loris D’Antoni and Margus Veanes. 2013. Static Analysis of String Encoders and Decoders. In Verification, Model Checking, and Abstract Interpretation, VMCAI. Springer, 209–228. 10.1007/978-3-642-35873-9_14 Wojciech Plandowski. 2004. Satisfiability of word equations with constants is in PSPACE. J. ACM 51, 3 (2004), 483–496. 10.1145/990308.990312 Pablo Barceló, Diego Figueira, and Leonid Libkin. 2013. Graph Logics with Rational Relations. Logical Methods in Computer Science 9, 3 (2013). J. Dénes. 1967. Connections between transformation semigroups and graphs. In Theory of Graphs. Gordon & Breach. Yunhui Zheng, Xiangyu Zhang, and Vijay Ganesh. 2013. Z3-str: a Z3-based string solver for web application analysis. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2013, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 114–124. 10.1145/2491411.2491456 Christian Choffrut. 2006. Relations over Words and Logic: A Chronology. Bulletin of the EATCS 89 (2006), 159–163. Leonardo De Moura and Nikolaj Bjørner. 2011. Satisfiability modulo theories: introduction and applications. Commun. ACM 54, 9 (2011), 69–77. 10.1145/1995376.1995394 Thierry Cachat and Igor Walukiewicz. 2007. The Complexity of Games on Higher Order Pushdown Automata. CoRR abs/0705.0262 (2007). arXiv: 0705.0262 http://arxiv.org/abs/0705.0262 Dexter Kozen. 1997. Automata and Computability. Springer. Christoph Kern. 2014. Securing the tangled web. Commun. ACM 57, 9 (2014), 38–47. 10.1145/2643134 Pieter Hooimeijer, Benjamin Livshits, David Molnar, Prateek Saxena, and Margus Veanes. 2011. Fast and Precise Sanitizer Analysis with BEK. In 20th USENIX Security Symposium, San Francisco, CA, USA, August 8-12, 2011, Proceedings. USENIX Association. http://static.usenix.org/events/sec11/tech/full_papers/Hooimeijer.pdf J Richard Büchi and Steven Senger. 1990. Definability in the existential theory of concatenation and undecidable extensions of this theory. In The Collected Works of J. Richard Büchi. Springer, 671–683. Yasuhiko Minamide. 2005. Static approximation of dynamically generated Web pages. In Proceedings of the 14th international conference on World Wide Web, WWW 2005. ACM, 432–441. 10.1145/1060745.1060809 K. L. McMillan. 1993. Symbolic model checking. Kluwer. Lukás Holík, Petr Janku, Anthony W. Lin, Philipp Rümmer, and Tomás Vojnar. 2018. String constraints with concatenation and transducers solved efficiently. PACMPL 2, POPL (2018), 4:1–4:32. 10.1145/3158092 Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. 2006. EXE: Automatically Generating Inputs of Death. In Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS ’06). ACM, New York, NY, USA, 322–335. 10.1145/1180405.1180445 Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Lukás Holík, Ahmed Rezine, Philipp Rümmer, and Jari Stenman. 2014. String Constraints for Verification. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 150–166. 10.1007/978-3-319-08867-9_10 Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2016. Progressive Reasoning over Recursively-Defined Strings. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I. Springer, 218–240. Anthony W. Lin and Pablo Barceló. 2016. String So e_1_2_2_49_1 e_1_2_2_22_1 Berzish Murphy (e_1_2_2_9_1) 2017 e_1_2_2_41_1 Cachat Thierry (e_1_2_2_12_1) 2007 Choffrut Christian (e_1_2_2_21_1) 2006; 89 e_1_2_2_8_1 e_1_2_2_28_1 e_1_2_2_26_1 Zelinka Bohdan (e_1_2_2_61_1) 1981 e_1_2_2_60_1 Kroening Daniel (e_1_2_2_39_1) Dénes J. (e_1_2_2_24_1) Nieuwenhuis Robert (e_1_2_2_46_1) 2004; 3452 e_1_2_2_59_1 Abdulla Parosh Aziz (e_1_2_2_2_1) 2018 Kozen Dexter (e_1_2_2_38_1) e_1_2_2_30_1 e_1_2_2_51_1 e_1_2_2_53_1 e_1_2_2_17_1 e_1_2_2_34_1 Alur Rajeev (e_1_2_2_4_1) e_1_2_2_15_1 e_1_2_2_36_1 van der Stock Andrew (e_1_2_2_55_1) 2018 Barrett Clark W. (e_1_2_2_7_1) Hooimeijer Pieter (e_1_2_2_31_1) 2011 Richard Büchi J (e_1_2_2_11_1) Cadar Cristian (e_1_2_2_13_1) 2008 e_1_2_2_48_1 Weinberger Joel (e_1_2_2_58_1) 2011 Trinh Minh-Thai (e_1_2_2_54_1) 2016 e_1_2_2_23_1 e_1_2_2_1_1 e_1_2_2_3_1 e_1_2_2_40_1 e_1_2_2_63_1 Baier Christel (e_1_2_2_5_1) e_1_2_2_42_1 e_1_2_2_29_1 e_1_2_2_44_1 e_1_2_2_27_1 Barceló Pablo (e_1_2_2_6_1) 2013 Hopcroft John E. (e_1_2_2_32_1) 1979 Carton Olivier (e_1_2_2_16_1) 2006; 40 McMillan K. L. (e_1_2_2_43_1) Zheng Yunhui (e_1_2_2_62_1) 2015 Pippenger Nicholas (e_1_2_2_47_1) e_1_2_2_14_1 e_1_2_2_37_1 e_1_2_2_10_1 Morvan Christophe (e_1_2_2_45_1) 2000 e_1_2_2_52_1 Wang Hung-En (e_1_2_2_57_1); 9779 Chen Yan (e_1_2_2_20_1) 2018 e_1_2_2_33_1 e_1_2_2_56_1 e_1_2_2_35_1 Diekert Volker (e_1_2_2_25_1) Chen Taolue (e_1_2_2_18_1) 2018 e_1_2_2_50_1 Chen Yan (e_1_2_2_19_1) |
| References_xml | – reference: Leonardo De Moura and Nikolaj Bjørner. 2011. Satisfiability modulo theories: introduction and applications. Commun. ACM 54, 9 (2011), 69–77. 10.1145/1995376.1995394 – reference: Taolue Chen, Matthew Hague, Anthony W. Lin, Philipp Rümmer, and Zhilin Wu. 2018b. Decision Procedures for Path Feasibility of String-Manipulating Programs with Complex Operations. CoRR abs/1811.03167 (2018). arXiv: 1811.03167 https://arxiv.org/abs/1811.03167 – reference: Vijay Ganesh, Mia Minnes, Armando Solar-Lezama, and Martin C. Rinard. 2012. Word Equations with Length Constraints: What’s Decidable?. In Hardware and Software: Verification and Testing - 8th International Haifa Verification Conference, HVC 2012, Haifa, Israel, November 6-8, 2012. Revised Selected Papers. Springer, 209–226. 10.1007/978-3-642-39611-3_21 – reference: Wojciech Plandowski. 2004. Satisfiability of word equations with constants is in PSPACE. J. ACM 51, 3 (2004), 483–496. 10.1145/990308.990312 – reference: Nikolaj Bjørner, Nikolai Tillmann, and Andrei Voronkov. 2009. Path feasibility analysis for string-manipulating programs. In Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2009. Springer, 307–321. 10.1007/978-3-642-00768-2_27 – reference: K. L. McMillan. 1993. Symbolic model checking. Kluwer. – reference: Loris D’Antoni and Margus Veanes. 2013. Static Analysis of String Encoders and Decoders. In Verification, Model Checking, and Abstract Interpretation, VMCAI. Springer, 209–228. 10.1007/978-3-642-35873-9_14 – reference: Christoph Kern. 2014. Securing the tangled web. Commun. ACM 57, 9 (2014), 38–47. 10.1145/2643134 – reference: Dexter Kozen. 1997. Automata and Computability. Springer. – reference: Murphy Berzish, Vijay Ganesh, and Yunhui Zheng. 2017. Z3str3: A string solver with theory-aware heuristics. In 2017 Formal Methods in Computer Aided Design, FMCAD 2017, Vienna, Austria, October 2-6, 2017. IEEE, 55–59. – reference: John E. Hopcroft and Jeffrey D. Ullman. 1979. Introduction to Automata Theory, Languages and Computation. Addison-Wesley. – reference: Neil D. Jones. 2001. The expressive power of higher-order types or, life without CONS. Journal of Functional Programming 11, 1 (2001), 55–94. http://journals.cambridge.org/action/displayAbstract?aid=68581 10.1017/S0956796800003889 – reference: J. Dénes. 1967. Connections between transformation semigroups and graphs. In Theory of Graphs. Gordon & Breach. – reference: Anthony W. Lin and Pablo Barceló. 2016. String Solving with Word Equations and Transducers: Towards a Logic for Analysing Mutation XSS. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16). Springer, 123–136. 10.1145/2837614.2837641 – reference: Fang Yu, Muath Alkhalaf, and Tevfik Bultan. 2010. Stranger: An Automata-Based String Analysis Tool for PHP. In Tools and Algorithms for the Construction and Analysis of Systems, 16th International Conference, TACAS 2010. Springer, 154–157. 10.1007/978-3-642-12002-2_13 – reference: Joost Engelfriet and Hendrik Jan Hoogeboom. 2001. MSO definable string transductions and two-way finite-state transducers. ACM Trans. Comput. Log. 2, 2 (2001), 216–254. 10.1145/371316.371512 – reference: Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli. 2004. Abstract DPLL and Abstract DPLL Modulo Theories. In Logic for Programming, Artificial Intelligence, and Reasoning, 11th International Conference, LPAR 2004 (LNCS), Vol. 3452. Springer, 36–50. – reference: Christel Baier and Joost-Pieter Katoen. 2008. Principles of Model Checking (Representation and Mind Series). The MIT Press. – reference: Adam Kiezun, Vijay Ganesh, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst. 2012. HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars. ACM Trans. Softw. Eng. Methodol. 21, 4 (2012), 25. 10.1145/2377656.2377662 – reference: Nicholas Pippenger. 2010. Theories of Computability. Cambridge University Press. – reference: Rajeev Alur and Jyotirmoy V. Deshmukh. 2011. Nondeterministic Streaming String Transducers. In Automata, Languages and Programming - 38th International Colloquium, ICALP 2011, Zurich, Switzerland, July 4-8, 2011, Proceedings, Part II. Springer, 1–20. – reference: Olivier Carton, Christian Choffrut, and Serge Grigorieff. 2006. Decision problems among the main subfamilies of rational relations. ITA 40, 2 (2006), 255–275. – reference: Yunhui Zheng, Xiangyu Zhang, and Vijay Ganesh. 2013. Z3-str: a Z3-based string solver for web application analysis. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2013, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 114–124. 10.1145/2491411.2491456 – reference: Yasuhiko Minamide. 2005. Static approximation of dynamically generated Web pages. In Proceedings of the 14th international conference on World Wide Web, WWW 2005. ACM, 432–441. 10.1145/1060745.1060809 – reference: Koushik Sen, Darko Marinov, and Gul Agha. 2005. CUTE: a concolic unit testing engine for C. In Proceedings of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2005, Lisbon, Portugal, September 5-9, 2005, ESEC/SIGSOFT FSE 2005. ACM, 263–272. 10.1145/1081706.1081750 – reference: Pablo Barceló, Diego Figueira, and Leonid Libkin. 2013. Graph Logics with Rational Relations. Logical Methods in Computer Science 9, 3 (2013). – reference: Yan Chen. 2018b. Z3-replaceall. https://github.com/TinyYan/z3- replaceAll . Referred in Jan 2018. – reference: Philipp Rümmer. 2008. A Constraint Sequent Calculus for First-Order Logic with Linear Integer Arithmetic. In Logic for Programming, Artificial Intelligence, and Reasoning, 15th International Conference, LPAR 2008, LNCS 5330. Springer, 274–289. 10.1007/978-3-540-89439-1_20 – reference: Yan Chen. 2018a. Solving String Constraints with ReplaceAll Function. Master’s thesis. State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, China. – reference: Leonid Libkin. 2003. Variable independence for first-order definable constraints. ACM Trans. Comput. Log. 4, 4 (2003), 431–451. 10.1145/937555.937557 – reference: Clark W. Barrett, Roberto Sebastiani, Sanjit A. Seshia, and Cesare Tinelli. 2009. Satisfiability Modulo Theories. In Handbook of Satisfiability. IOS Press, 825–885. – reference: Hung-En Wang, Tzung-Lin Tsai, Chun-Han Lin, Fang Yu, and Jie-Hong R. Jiang. 2016. String Analysis via Automata Manipulation with Logic Circuit Representation. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I (Lecture Notes in Computer Science), Vol. 9779. Springer, 241–260. – reference: Emmanuel Filiot, Olivier Gauwin, Pierre-Alain Reynier, and Frédéric Servais. 2013. From Two-Way to One-Way Finite State Transducers. In 28th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2013, New Orleans, LA, USA, June 25-28, 2013. IEEE Computer Society, 468–477. – reference: Andrew van der Stock, Brian Glas, Neil Smithline, and Torsten Gigler. 2017. OWASP Top 10 – 2017. https://www.owasp. org/index.php/Top_10- 2017_Top_10 . Referred January 2018. – reference: Lukás Holík, Petr Janku, Anthony W. Lin, Philipp Rümmer, and Tomás Vojnar. 2018. String constraints with concatenation and transducers solved efficiently. PACMPL 2, POPL (2018), 4:1–4:32. 10.1145/3158092 – reference: Christian Choffrut. 2006. Relations over Words and Logic: A Chronology. Bulletin of the EATCS 89 (2006), 159–163. – reference: Fang Yu, Muath Alkhalaf, Tevfik Bultan, and Oscar H. Ibarra. 2014. Automata-based Symbolic String Analysis for Vulnerability Detection. Form. Methods Syst. Des. 44, 1 (2014), 44–70. 10.1007/s10703-013-0189-1 – reference: Daniel Kroening and Ofer Strichman. 2008. Decision Procedures. Springer. – reference: Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2016. Progressive Reasoning over Recursively-Defined Strings. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I. Springer, 218–240. – reference: Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. 2006. EXE: Automatically Generating Inputs of Death. In Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS ’06). ACM, New York, NY, USA, 322–335. 10.1145/1180405.1180445 – reference: Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2017. Flatten and conquer: a framework for efficient analysis of string constraints. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, Barcelona, Spain, June 18-23, 2017. ACM, New York, NY, USA, 602–617. 10.1145/3062341.3062384 – reference: Thierry Cachat and Igor Walukiewicz. 2007. The Complexity of Games on Higher Order Pushdown Automata. CoRR abs/0705.0262 (2007). arXiv: 0705.0262 http://arxiv.org/abs/0705.0262 – reference: Volker Diekert. 2002. Makanin’s Algorithm. In Algebraic Combinatorics on Words, M. Lothaire (Ed.). Encyclopedia of Mathematics and its Applications, Vol. 90. Cambridge University Press, Chapter 12, 387–442. – reference: J Richard Büchi and Steven Senger. 1990. Definability in the existential theory of concatenation and undecidable extensions of this theory. In The Collected Works of J. Richard Büchi. Springer, 671–683. – reference: Koushik Sen, Swaroop Kalasapur, Tasneem G. Brutch, and Simon Gibbs. 2013. Jalangi: a selective record-replay and dynamic analysis framework for JavaScript. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE’13, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 488–498. 10.1145/2491411.2491447 – reference: Prateek Saxena, Devdatta Akhawe, Steve Hanna, Feng Mao, Stephen McCamant, and Dawn Song. 2010. A Symbolic Execution Framework for JavaScript. In 31st IEEE Symposium on Security and Privacy, S&P 2010, 16-19 May 2010, Berleley/Oakland, California, USA. IEEE, 513–528. 10.1109/SP.2010.38 – reference: Joel Weinberger, Prateek Saxena, Devdatta Akhawe, Matthew Finifter, Eui Chul Richard Shin, and Dawn Song. 2011. A Systematic Analysis of XSS Sanitization in Web Application Frameworks. In Computer Security - ESORICS 2011 - 16th European Symposium on Research in Computer Security, Leuven, Belgium, September 12-14, 2011. Proceedings. Springer, 150–171. – reference: Bohdan Zelinka. 1981. Graphs of semigroups. Časopis pro pěstování matematiky 106, 4 (1981), 407–408. http://eudml.org/ doc/19323 – reference: Michael Benedikt, Leonid Libkin, Thomas Schwentick, and Luc Segoufin. 2003. Definable relations and first-order query languages over strings. J. ACM 50, 5 (2003), 694–751. 10.1145/876638.876642 – reference: Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2014. S3: A Symbolic String Solver for Vulnerability Detection in Web Applications. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, CCS 2014. ACM, 1232–1243. 10.1145/2660267.2660372 – reference: Margus Veanes, Nikolaj Bjørner, Lev Nachmanson, and Sergey Bereg. 2017. Monadic Decomposition. J. ACM 64, 2 (2017), 14:1–14:28. 10.1145/3040488 – reference: Patrice Godefroid, Nils Klarlund, and Koushik Sen. 2005. DART: Directed Automated Random Testing. SIGPLAN Not. 40, 6 (June 2005), 213–223. 10.1145/1064978.1065036 – reference: Taolue Chen, Yan Chen, Matthew Hague, Anthony W. Lin, and Zhilin Wu. 2018a. What is decidable about string constraints with the ReplaceAll function. PACMPL 2, POPL (2018), 3:1–3:29. 10.1145/3158091 – reference: Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, and Morgan Deters. 2014. A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 646–662. 10.1007/978-3-319-08867-9_43 – reference: Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2018. TRAU: SMT Solver for String Constraints. In Formal Methods in Computer Aided Design, FMCAD 2018. To appear. – reference: Yunhui Zheng, Vijay Ganesh, Sanu Subramanian, Omer Tripp, Julian Dolby, and Xiangyu Zhang. 2015. Effective Search-Space Pruning for Solvers of String Equations, Regular Expressions and Length Constraints. In Computer Aided Verification -27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I. Springer, 235–254. – reference: Christophe Morvan. 2000. On Rational Graphs. In Foundations of Software Science and Computation Structures, Third International Conference, FOSSACS 2000. Springer, 252–266. – reference: Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Lukás Holík, Ahmed Rezine, Philipp Rümmer, and Jari Stenman. 2014. String Constraints for Verification. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 150–166. 10.1007/978-3-319-08867-9_10 – reference: James C. King. 1976. Symbolic Execution and Program Testing. Commun. ACM 19, 7 (1976), 385–394. 10.1145/360248.360252 – reference: Pieter Hooimeijer, Benjamin Livshits, David Molnar, Prateek Saxena, and Margus Veanes. 2011. Fast and Precise Sanitizer Analysis with BEK. In 20th USENIX Security Symposium, San Francisco, CA, USA, August 8-12, 2011, Proceedings. USENIX Association. http://static.usenix.org/events/sec11/tech/full_papers/Hooimeijer.pdf – reference: Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08). USENIX Association, Berkeley, CA, USA, 209–224. http://dl.acm.org/citation.cfm?id=1855741. 1855756 – reference: Cristian Cadar and Koushik Sen. 2013. Symbolic Execution for Software Testing: Three Decades Later. Commun. ACM 56, 2 (Feb. 2013), 82–90. 10.1145/2408776.2408795 – reference: Artur Jez. 2016. Recompression: A Simple and Powerful Technique for Word Equations. J. ACM 63, 1 (2016), 4:1–4:51. 10.1145/2743014 – ident: e_1_2_2_37_1 doi: 10.1145/360248.360252 – volume-title: Eui Chul Richard Shin, and Dawn Song year: 2011 ident: e_1_2_2_58_1 – volume-title: The Collected Works of J. Richard Büchi ident: e_1_2_2_11_1 – ident: e_1_2_2_27_1 doi: 10.5555/2591370.2591389 – volume-title: Third International Conference, FOSSACS year: 2000 ident: e_1_2_2_45_1 – ident: e_1_2_2_29_1 doi: 10.1145/1064978.1065036 – ident: e_1_2_2_30_1 doi: 10.1145/3158092 – ident: e_1_2_2_42_1 doi: 10.1145/2837614.2837641 – ident: e_1_2_2_1_1 doi: 10.1145/3062341.3062384 – ident: e_1_2_2_50_1 doi: 10.1109/SP.2010.38 – volume-title: Fast and Precise Sanitizer Analysis with BEK. In 20th USENIX Security Symposium year: 2011 ident: e_1_2_2_31_1 – ident: e_1_2_2_51_1 doi: 10.1145/2491411.2491447 – ident: e_1_2_2_52_1 doi: 10.1145/1081706.1081750 – ident: e_1_2_2_53_1 doi: 10.1145/2660267.2660372 – volume-title: Solving String Constraints with ReplaceAll Function. Master’s thesis. State Key Laboratory of Computer Science ident: e_1_2_2_19_1 – volume-title: 38th International Colloquium, ICALP 2011, Zurich, Switzerland, July 4-8, 2011, Proceedings, Part II. Springer, 1–20 ident: e_1_2_2_4_1 – ident: e_1_2_2_40_1 doi: 10.1007/978-3-319-08867-9_43 – ident: e_1_2_2_14_1 doi: 10.1145/1180405.1180445 – volume: 40 start-page: 255 year: 2006 ident: e_1_2_2_16_1 article-title: Decision problems among the main subfamilies of rational relations publication-title: ITA – volume-title: Principles of Model Checking (Representation and Mind Series) ident: e_1_2_2_5_1 – ident: e_1_2_2_36_1 doi: 10.1145/2377656.2377662 – volume-title: FMCAD year: 2018 ident: e_1_2_2_2_1 – volume-title: FMCAD 2017 year: 2017 ident: e_1_2_2_9_1 – ident: e_1_2_2_59_1 doi: 10.1007/978-3-642-12002-2_13 – ident: e_1_2_2_17_1 doi: 10.1145/3158091 – volume-title: Decision Procedures for Path Feasibility of String-Manipulating Programs with Complex Operations. CoRR abs/1811.03167 year: 2018 ident: e_1_2_2_18_1 – volume-title: Graph Logics with Rational Relations. Logical Methods in Computer Science 9, 3 year: 2013 ident: e_1_2_2_6_1 – ident: e_1_2_2_15_1 doi: 10.1145/2408776.2408795 – volume-title: Symbolic model checking ident: e_1_2_2_43_1 – ident: e_1_2_2_41_1 doi: 10.1145/937555.937557 – ident: e_1_2_2_3_1 doi: 10.1007/978-3-319-08867-9_10 – volume-title: Theories of Computability ident: e_1_2_2_47_1 – volume-title: Theory of Graphs. Gordon & ident: e_1_2_2_24_1 – volume-title: CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I. Springer, 218–240 year: 2016 ident: e_1_2_2_54_1 – volume-title: Graphs of semigroups. Časopis pro pěstování matematiky 106, 4 year: 1981 ident: e_1_2_2_61_1 – volume-title: The Complexity of Games on Higher Order Pushdown Automata. CoRR abs/0705.0262 year: 2007 ident: e_1_2_2_12_1 – ident: e_1_2_2_26_1 doi: 10.1145/371316.371512 – ident: e_1_2_2_34_1 doi: 10.1017/S0956796800003889 – volume-title: CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I. Springer, 235–254 year: 2015 ident: e_1_2_2_62_1 – ident: e_1_2_2_63_1 doi: 10.1145/2491411.2491456 – ident: e_1_2_2_22_1 doi: 10.1007/978-3-642-35873-9_14 – ident: e_1_2_2_28_1 doi: 10.1007/978-3-642-39611-3_21 – volume: 89 start-page: 159 year: 2006 ident: e_1_2_2_21_1 article-title: Relations over Words and Logic: A Chronology publication-title: Bulletin of the EATCS – volume-title: Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08) year: 2008 ident: e_1_2_2_13_1 – volume-title: https://github.com/TinyYan/z3- replaceAll . Referred year: 2018 ident: e_1_2_2_20_1 – volume-title: https://www.owasp. org/index.php/Top_10- 2017_Top_10 . Referred year: 2018 ident: e_1_2_2_55_1 – volume-title: Handbook of Satisfiability ident: e_1_2_2_7_1 – volume: 3452 volume-title: 11th International Conference, LPAR 2004 (LNCS) year: 2004 ident: e_1_2_2_46_1 – ident: e_1_2_2_56_1 doi: 10.1145/3040488 – ident: e_1_2_2_10_1 doi: 10.1007/978-3-642-00768-2_27 – ident: e_1_2_2_44_1 doi: 10.1145/1060745.1060809 – ident: e_1_2_2_49_1 doi: 10.1007/978-3-540-89439-1_20 – ident: e_1_2_2_23_1 doi: 10.1145/1995376.1995394 – ident: e_1_2_2_33_1 doi: 10.1145/2743014 – ident: e_1_2_2_60_1 doi: 10.1007/s10703-013-0189-1 – volume-title: Ullman year: 1979 ident: e_1_2_2_32_1 – volume-title: Decision Procedures ident: e_1_2_2_39_1 – ident: e_1_2_2_48_1 doi: 10.1145/990308.990312 – volume-title: Algebraic Combinatorics on Words ident: e_1_2_2_25_1 – volume-title: Automata and Computability ident: e_1_2_2_38_1 – volume: 9779 volume-title: CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I (Lecture Notes in Computer Science) ident: e_1_2_2_57_1 – ident: e_1_2_2_8_1 doi: 10.1145/876638.876642 – ident: e_1_2_2_35_1 doi: 10.1145/2643134 |
| SSID | ssj0001934839 |
| Score | 2.3940833 |
| Snippet | The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such... |
| SourceID | unpaywall swepub crossref acm |
| SourceType | Open Access Repository Enrichment Source Index Database Publisher |
| StartPage | 1 |
| SubjectTerms | Automated reasoning Complexity classes Computational complexity and cryptography Computer Science Datavetenskap Decision Procedures Formal languages and automata theory Logic Logic and verification Program reasoning Program verification Regular languages ReplaceAll Reverse Semantics and reasoning Straight-Line Programs String Constraints Theory of computation Transducers |
| SubjectTermsDisplay | Theory of computation -- Computational complexity and cryptography -- Complexity classes Theory of computation -- Formal languages and automata theory -- Regular languages Theory of computation -- Logic -- Automated reasoning Theory of computation -- Logic -- Logic and verification Theory of computation -- Semantics and reasoning -- Program reasoning -- Program verification |
| Title | Decision procedures for path feasibility of string-manipulating programs with complex operations |
| URI | https://dl.acm.org/doi/10.1145/3290362 https://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-398239 https://dl.acm.org/doi/pdf/10.1145/3290362 |
| UnpaywallVersion | publishedVersion |
| Volume | 3 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: true ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1NbxMxEB1BegAOFAoVobQyEnBzidf2en2M-qEKqRUHgspp8dqeqmq6iUhWUA78duzYCaVVpd5Ho5Vn7Hn2zrwH8E44z60ukTKvLBWGN1Rrx6hXCgtuWOUwDgofn5RHI_HpVJ5mmpw4C-PGwc_l4hd-3NNTh5nQVn7khU7H7VopA-7uwdro5PPwW1SPE0pSJgqWpmKvW8eiYy__KzqZEvQJPOraqbn6acbjayXlcD1pE80WTISxk-Rit5s3u_b3DZ7G-33tM3iakSUZplR4Dg98uwHrS9UGkjfxC_i-n2V1yKJ4uS5cuEmAriSKExP0JjfMXpEJkqjq0Z7RSJKRhL7aM5JbumYkvuGSRU-6_0UmU5-SafYSRocHX_aOaNZZoIYzMadxmtWrRupKasu8C0eAcAVrvBQGNYoCvVfa4cBUyqFVDSIL15xGc6elQs43oddOWv8KSMAnVjRYuoFA4QJ2QRRlYQeVQVdV0vdhIyxYPU1MGnVepD58WIantpmaPCpkjOs0Ni3_GZKV4dLHLZP3Kb4rg0igvX_-dViHMNVdV3NdFVz34e0q_Hf5en0Pmy14HDCUTq8yb6A3_9H57YBT5s0OPDz-c7CT0_QvSQLnFQ |
| linkProvider | Unpaywall |
| linkToUnpaywall | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LTxsxELZQONAeeJWK8JIr0d4M8dper48RDyEkUA8E0dPitT2oathEJCsevx47dgIFIXEfjVaeseezd-b7ENrl1jGjciDUSUO4ZhVRylLipISMaVpYCIPCZ-f5SY-fXomrRJMTZmFs3_u5nfzCD3t6aCER2op9lql43M7nwuPuFprvnf_u_gnqcVwKQnlG41Tsa-tQdMztf0UnUYJ-RQtNPdSP97rff1VSjpeiNtFowkQYOkn-7TXjas88veFp_NzXLqPFhCxxN6bCCppz9Spamqo24LSJv6HrwySrgyfFyzb-wo09dMVBnBiD06lh9hEPAAdVj_qGBJKMKPRV3-DU0jXC4Q0XT3rS3QMeDF1MptEa6h0fXRyckKSzQDSjfEzCNKuTlVCFUIY6648AbjNaOcE1KOAZOCeVhY4upAUjKwDqrzmVYlYJCYx9R616ULt1hD0-MbyC3HY4cOuxCwDPM9MpNNiiEK6NVv2ClcPIpFGmRWqjX9PwlCZRkweFjH4Zx6bFiyGeGU59vDP5GeM7MwgE2od_L7ulD1PZNCVTRcZUG_2Yhf8jXxufsNlEXzyGUvFVZgu1xneN2_Y4ZVztpAR9BuMA5eQ |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Decision+procedures+for+path+feasibility+of+string-manipulating+programs+with+complex+operations&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Chen%2C+Taolue&rft.au=Hague%2C+Matthew&rft.au=Lin%2C+Anthony+W.&rft.au=R%C3%BCmmer%2C+Philipp&rft.date=2019-01-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=3&rft.issue=49&rft_id=info:doi/10.1145%2F3290362&rft.externalDocID=oai_DiVA_org_uu_398239 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |