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...
In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a w...
Data streams arise in a variety of applications, such as feeds from financial markets, event streams...
In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a w...
Abstract. We perform static analysis of Java programs to answer a simple question: which values may ...
In this paper we formalize Tarsis, a new abstract domain based on the abstract interpretation theory...
We develop a formal perspective on how regular expression matching works in Java1, a popular rep-res...
We show how to achieve typed and unambiguous declarative pattern matching on strings using regular e...
Strings are widely used in modern programming languages in various scenarios. For instance, strings ...
We present a new code assistance tool for integrated devel-opment environments. Our system accepts a...
In recent years, dynamic languages, such as JavaScript or Python, have faced an important increment ...
In the recent years, dynamic languages such as JavaScript, Python or PHP, have found several fields ...
In Abstract Interpretation, completeness ensures that the analysis does not lose information with re...
Static analysis tools cannot detect violations of application-specific rules. They can be extended w...
Dynamic languages, such as JavaScript, employ string-to-code primitives to turn dynamically generate...
Dynamic languages often employ reflection primitives to turn dynamically generated text into executa...
In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a w...
Data streams arise in a variety of applications, such as feeds from financial markets, event streams...
In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a w...
Abstract. We perform static analysis of Java programs to answer a simple question: which values may ...
In this paper we formalize Tarsis, a new abstract domain based on the abstract interpretation theory...
We develop a formal perspective on how regular expression matching works in Java1, a popular rep-res...
We show how to achieve typed and unambiguous declarative pattern matching on strings using regular e...
Strings are widely used in modern programming languages in various scenarios. For instance, strings ...
We present a new code assistance tool for integrated devel-opment environments. Our system accepts a...
In recent years, dynamic languages, such as JavaScript or Python, have faced an important increment ...
In the recent years, dynamic languages such as JavaScript, Python or PHP, have found several fields ...
In Abstract Interpretation, completeness ensures that the analysis does not lose information with re...
Static analysis tools cannot detect violations of application-specific rules. They can be extended w...
Dynamic languages, such as JavaScript, employ string-to-code primitives to turn dynamically generate...
Dynamic languages often employ reflection primitives to turn dynamically generated text into executa...
In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a w...
Data streams arise in a variety of applications, such as feeds from financial markets, event streams...
In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a w...