Reference abstract domains and applications to string analysis

Roberto Amadini, François Gauthier, Peter Schachte, Peter J. Stuckey, Graeme Gange, Alexander Jordan, Harald Søndergaard, Chenyi Zhang

Research output: Contribution to journalArticleResearchpeer-review

10 Citations (Scopus)


Interpretation is a well established theory that supports reasoning about the run-time behaviour of programs. It achieves tractable reasoning by considering abstractions of run-time states, rather than the states themselves. The chosen set of abstractions is referred to as the abstract domain. We develop a novel framework for combining (a possibly large number of) abstract domains. It achieves the effect of the so-called reduced product without requiring a quadratic number of functions to translate information among abstract domains. A central notion is a reference domain, a medium for information exchange. Our approach suggests a novel and simpler way to manage the integration of large numbers of abstract domains. We instantiate our framework in the context of string analysis. Browser-embedded dynamic programming languages such as JavaScript and PHP encourage the use of strings as a universal data type for both code and data values. The ensuing vulnerabilities have made string analysis a focus of much recent research. String analysis tends to combine many elementary string abstract domains, eachdesigned to capture a specific aspect of strings. For this instance the set of regular languages,while too expensive to use directly for analysis, provides an attractive reference domain, enablingthe efficient simulation of reduced products of multiple string abstract domains.

Original languageEnglish
Pages (from-to)297-326
Number of pages30
JournalFundamenta Informaticae
Issue number4
Publication statusPublished - 9 Feb 2018
Externally publishedYes

Cite this