Matches in SemOpenAlex for { <https://semopenalex.org/work/W2899573209> ?p ?o ?g. }
- W2899573209 endingPage "30" @default.
- W2899573209 startingPage "1" @default.
- W2899573209 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." @default.
- W2899573209 created "2018-11-16" @default.
- W2899573209 creator A5022025835 @default.
- W2899573209 creator A5030747944 @default.
- W2899573209 creator A5034129725 @default.
- W2899573209 creator A5039615242 @default.
- W2899573209 creator A5083664380 @default.
- W2899573209 date "2019-01-02" @default.
- W2899573209 modified "2023-10-01" @default.
- W2899573209 title "Decision procedures for path feasibility of string-manipulating programs with complex operations" @default.
- W2899573209 cites W1555798330 @default.
- W2899573209 cites W1599228120 @default.
- W2899573209 cites W1810306334 @default.
- W2899573209 cites W1952344271 @default.
- W2899573209 cites W1982132104 @default.
- W2899573209 cites W1987647365 @default.
- W2899573209 cites W2009489720 @default.
- W2899573209 cites W2011875300 @default.
- W2899573209 cites W2017035494 @default.
- W2899573209 cites W2020437202 @default.
- W2899573209 cites W2023887108 @default.
- W2899573209 cites W2027450089 @default.
- W2899573209 cites W2028685566 @default.
- W2899573209 cites W2039192691 @default.
- W2899573209 cites W2044901139 @default.
- W2899573209 cites W2094568767 @default.
- W2899573209 cites W2096449544 @default.
- W2899573209 cites W2101512909 @default.
- W2899573209 cites W2105438076 @default.
- W2899573209 cites W2106181999 @default.
- W2899573209 cites W2107147876 @default.
- W2899573209 cites W2107604680 @default.
- W2899573209 cites W2117402063 @default.
- W2899573209 cites W2132897303 @default.
- W2899573209 cites W2137351629 @default.
- W2899573209 cites W2161510308 @default.
- W2899573209 cites W2194959641 @default.
- W2899573209 cites W2295791966 @default.
- W2899573209 cites W254881558 @default.
- W2899573209 cites W2623287016 @default.
- W2899573209 cites W2626453174 @default.
- W2899573209 cites W2776845434 @default.
- W2899573209 cites W2963054422 @default.
- W2899573209 doi "https://doi.org/10.1145/3290362" @default.
- W2899573209 hasPublicationYear "2019" @default.
- W2899573209 type Work @default.
- W2899573209 sameAs 2899573209 @default.
- W2899573209 citedByCount "44" @default.
- W2899573209 countsByYear W28995732092019 @default.
- W2899573209 countsByYear W28995732092020 @default.
- W2899573209 countsByYear W28995732092021 @default.
- W2899573209 countsByYear W28995732092022 @default.
- W2899573209 countsByYear W28995732092023 @default.
- W2899573209 crossrefType "journal-article" @default.
- W2899573209 hasAuthorship W2899573209A5022025835 @default.
- W2899573209 hasAuthorship W2899573209A5030747944 @default.
- W2899573209 hasAuthorship W2899573209A5034129725 @default.
- W2899573209 hasAuthorship W2899573209A5039615242 @default.
- W2899573209 hasAuthorship W2899573209A5083664380 @default.
- W2899573209 hasBestOaLocation W28995732091 @default.
- W2899573209 hasConcept C115988155 @default.
- W2899573209 hasConcept C121329065 @default.
- W2899573209 hasConcept C153269930 @default.
- W2899573209 hasConcept C154690210 @default.
- W2899573209 hasConcept C157486923 @default.
- W2899573209 hasConcept C176181172 @default.
- W2899573209 hasConcept C199360897 @default.
- W2899573209 hasConcept C2777735758 @default.
- W2899573209 hasConcept C2777904410 @default.
- W2899573209 hasConcept C2779639559 @default.
- W2899573209 hasConcept C33923547 @default.
- W2899573209 hasConcept C37914503 @default.
- W2899573209 hasConcept C41008148 @default.
- W2899573209 hasConcept C544833334 @default.
- W2899573209 hasConcept C61423126 @default.
- W2899573209 hasConcept C80444323 @default.
- W2899573209 hasConceptScore W2899573209C115988155 @default.
- W2899573209 hasConceptScore W2899573209C121329065 @default.
- W2899573209 hasConceptScore W2899573209C153269930 @default.
- W2899573209 hasConceptScore W2899573209C154690210 @default.
- W2899573209 hasConceptScore W2899573209C157486923 @default.
- W2899573209 hasConceptScore W2899573209C176181172 @default.
- W2899573209 hasConceptScore W2899573209C199360897 @default.
- W2899573209 hasConceptScore W2899573209C2777735758 @default.
- W2899573209 hasConceptScore W2899573209C2777904410 @default.
- W2899573209 hasConceptScore W2899573209C2779639559 @default.
- W2899573209 hasConceptScore W2899573209C33923547 @default.
- W2899573209 hasConceptScore W2899573209C37914503 @default.
- W2899573209 hasConceptScore W2899573209C41008148 @default.
- W2899573209 hasConceptScore W2899573209C544833334 @default.
- W2899573209 hasConceptScore W2899573209C61423126 @default.
- W2899573209 hasConceptScore W2899573209C80444323 @default.
- W2899573209 hasFunder F4320321001 @default.
- W2899573209 hasFunder F4320322581 @default.
- W2899573209 hasFunder F4320327257 @default.
- W2899573209 hasFunder F4320334627 @default.
- W2899573209 hasFunder F4320337740 @default.
- W2899573209 hasFunder F4320338335 @default.