2003
DOI: 10.7146/brics.v10i5.21776
|View full text |Cite
|
Sign up to set email alerts
|

Precise Analysis of String Expressions

Abstract: Abstract.We perform static analysis of Java programs to answer a simple question: which values may occur as results of string expressions? The answers are summarized for each expression by a regular language that is guaranteed to contain all possible values. We present several applications of this analysis, including statically checking the syntax of dynamically generated expressions, such as SQL queries. Our analysis constructs flow graphs from class files and generates a context-free grammar with a nontermin… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
202
0

Year Published

2006
2006
2019
2019

Publication Types

Select...
6
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 105 publications
(202 citation statements)
references
References 7 publications
0
202
0
Order By: Relevance
“…For the concatenation of two strings, we rely on the concatList function that concatenates two lists of bricks, and then we normalise its result. readLine returns the top value, while substring e b returns the substring iff the first brick of the list has index [1,1] and the length of all the strings contained in it is greater than e. Notice that T ′ = {t.substring(b, e)∀t ∈ T}.…”
Section: Bricksmentioning
confidence: 99%
See 2 more Smart Citations
“…For the concatenation of two strings, we rely on the concatList function that concatenates two lists of bricks, and then we normalise its result. readLine returns the top value, while substring e b returns the substring iff the first brick of the list has index [1,1] and the length of all the strings contained in it is greater than e. Notice that T ′ = {t.substring(b, e)∀t ∈ T}.…”
Section: Bricksmentioning
confidence: 99%
“…When a constant string is evaluated, the semantics returns a single brick containing exactly that string with [1,1] as index. For the concatenation of two strings, we rely on the concatList function that concatenates two lists of bricks, and then we normalise its result.…”
Section: Bricksmentioning
confidence: 99%
See 1 more Smart Citation
“…Due to its importance in security, string analysis has been widely studied. One influential approach has been grammar-based string analysis that statically computes an over-approximation of the values of string expressions in Java programs [6] which has also been used to check for various types of errors in Web applications [8,9,12]. In [9,12], multi-track DFAs, known as transducers, are used to model replacement operations.…”
Section: Introductionmentioning
confidence: 99%
“…Recently, a number of techniques producing string constraints have been suggested for automatic testing [8,1] and program verification [16]. String-constraint solvers are used in many testing and analysis tools [5,2,6,15,23].…”
Section: Introductionmentioning
confidence: 99%