Article thumbnail

Adaptive Context-sensitive Analysis for JavaScript

By Shiyi Wei and Barbara G. Ryder

Abstract

Context sensitivity is a technique to improve program analysis precision by distinguishing between function calls. A specific context-sensitive analysis is usually designed to accommodate the programming paradigm of a particular programming language. JavaScript features both the object-oriented and functional programming paradigms. Our empirical study suggests that there is no single context-sensitive analysis that always produces precise results for JavaScript applications. This observation motivated us to design an adaptive analysis, selecting a context-sensitive analysis from multiple choices for each function. Our two-staged adaptive context-sensitive analysis first extracts function characteristics from an inexpensive points-to analysis and then chooses a specialized context-sensitive analysis per function based on the heuristics. The experimental results show that our adaptive analysis achieved more precise results than any single context-sensitive analysis for several JavaScript programs in the benchmarks

Topics: Context Sensitivity, JavaScript, Static Program Analysis, Data processing Computer science
Publisher: LIPIcs - Leibniz International Proceedings in Informatics. 29th European Conference on Object-Oriented Programming (ECOOP 2015)
Year: 2015
DOI identifier: 10.4230/LIPIcs.ECOOP.2015.712
OAI identifier: oai:drops-oai.dagstuhl.de:5244

Suggested articles


To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.