2017
DOI: 10.1007/978-3-662-54577-5_3
|View full text |Cite
|
Sign up to set email alerts
|

Combining String Abstract Domains for JavaScript Analysis: An Evaluation

Abstract: Strings play a central role in JavaScript and similar scripting languages. Owing to dynamic features such as the eval function and dynamic property access, precise string analysis is a prerequisite for automated reasoning about practically any kind of runtime property. Although the literature presents a considerable number of abstract domains for capturing and representing specific aspect of strings, we are not aware of tools that allow flexible combination of string abstract domains. Indeed, support for strin… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
26
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
7
1

Relationship

3
5

Authors

Journals

citations
Cited by 22 publications
(26 citation statements)
references
References 16 publications
(38 reference statements)
0
26
0
Order By: Relevance
“…Amadini et al [19] provided an evaluation on the combination via direct product of different string abstract domains in order to improve the precision of JavaScript static analysis. In [13] this combination is achieved via reduced product by using the set of regular languages as a reference domain for the other string domains.…”
Section: Practical Aspectsmentioning
confidence: 99%
“…Amadini et al [19] provided an evaluation on the combination via direct product of different string abstract domains in order to improve the precision of JavaScript static analysis. In [13] this combination is achieved via reduced product by using the set of regular languages as a reference domain for the other string domains.…”
Section: Practical Aspectsmentioning
confidence: 99%
“…Although we believe that our design is sound and scalable, it currently employs some very naive abstractions with respect to the state of the art. Our almost-concrete string abstraction could be replaced with the complex abstractions designed by Amadini et al for JavaScript [2]. Likewise, object abstractions have been studied extensively, especially for the analysis of Java, and we could replace our simple allocation-site abstraction based on recency abstraction [4] with more efficient ones, such as object-sensitive abstractions [24].…”
Section: Generatorsmentioning
confidence: 99%
“…We first consider non-relational abstractions: each variable is assigned an abstract value in Val representing a set of possible concrete values. Following [14], we abstract separately each type of values in its abstract domain, while their product Val can represent sets of heterogeneous values: [2], will be considered in future work. We can use any non-relational domain for Num , and our implementation uses integer and float intervals.…”
Section: Non-relational Abstractionmentioning
confidence: 99%
See 1 more Smart Citation
“…Several research tools, including TAJS [Jensen et al 2009], WALA [Sridharan et al 2012], SAFE [Lee et al 2012], and JSAI [Kashyap et al 2014], have been developed in recent years to address this challenge. A notable trend is that analysis precision is being increased in many directions, including high degrees of context sensitivity [Andreasen and Mùller 2014], aggressive loop unrolling [Park and Ryu 2015], and sophisticated abstract domains for strings [Amadini et al 2017;Madsen and Andreasen 2014;Park et al 2016], to enable analysis of real-world JavaScript programs.…”
Section: Introductionmentioning
confidence: 99%