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...
Strings are widely used in modern programming languages in various scenarios. For instance, strings ...
AbstractWe present λre, a minimal functional calculus with regular expression types for strings, in ...
computer languages, ranging from shell programming, to SQL, to java, to python (Lutz, 1996
Abstract. We perform static analysis of Java programs to answer a simple question: which values may ...
We perform static analysis of Java programs to answer a simple question: which values may occur as r...
We show how to achieve typed and unambiguous declarative pattern matching on strings using regular e...
We develop a formal perspective on how regular expression matching works in Java1, a popular rep-res...
We present a new code assistance tool for integrated devel-opment environments. Our system accepts a...
Strings are widely used in modern programming languages in various scenarios. For instance, strings ...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
The behavior of software that uses the Java Reflection API is fundamentally hard to predict by analy...
We present a formalisation of Java Strings tailored to specification and verification of programs (u...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
In this paper we formalize Tarsis, a new abstract domain based on the abstract interpretation theory...
Static analysis tools cannot detect violations of application-specific rules. They can be extended w...
Strings are widely used in modern programming languages in various scenarios. For instance, strings ...
AbstractWe present λre, a minimal functional calculus with regular expression types for strings, in ...
computer languages, ranging from shell programming, to SQL, to java, to python (Lutz, 1996
Abstract. We perform static analysis of Java programs to answer a simple question: which values may ...
We perform static analysis of Java programs to answer a simple question: which values may occur as r...
We show how to achieve typed and unambiguous declarative pattern matching on strings using regular e...
We develop a formal perspective on how regular expression matching works in Java1, a popular rep-res...
We present a new code assistance tool for integrated devel-opment environments. Our system accepts a...
Strings are widely used in modern programming languages in various scenarios. For instance, strings ...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
The behavior of software that uses the Java Reflection API is fundamentally hard to predict by analy...
We present a formalisation of Java Strings tailored to specification and verification of programs (u...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
In this paper we formalize Tarsis, a new abstract domain based on the abstract interpretation theory...
Static analysis tools cannot detect violations of application-specific rules. They can be extended w...
Strings are widely used in modern programming languages in various scenarios. For instance, strings ...
AbstractWe present λre, a minimal functional calculus with regular expression types for strings, in ...
computer languages, ranging from shell programming, to SQL, to java, to python (Lutz, 1996