Precise Analysis of String Expressions

By Aske Simon Christensen, Anders Møller, Michael I. Schwartzbach. Sensors Applications Symposium, 2003

513 citations recorded by the source corpus.

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 nonterminal for each string expression. The language of this grammar is then widened into a regular language through a variant of an algorithm previously used for speech recognition. The collection of resulting regular languages is compactly represented as a special kind of multi-level automaton from which individual answers may be extracted. If a program error is detected, examples of invalid strings are automatically produced. We present extensive benchmarks demonstrating that the analysis is efficient and produces results of useful precision.

Subfields: Artificial Intelligence, Software

View Paper: https://www.semanticscholar.org/paper/c146e9386cc0f90599332b06d33edacfffbe9bac

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Artificial Intelligence

  1. Zhendong Su
  2. Gary Wassermann
  3. Christopher Krügel
  4. Engin Kirda
  5. Dawn Song
  6. Adam Kiezun
  7. Giovanni Vigna
  8. David Brumley

In Software

  1. Zhendong Su
  2. Christopher Krügel
  3. Giovanni Vigna
  4. Adam Kiezun
  5. Dawn Song
  6. Michael D. Ernst
  7. Jeffrey S. Foster
  8. Engin Kirda

Citations in the corpus