Visible to the public CAREER: Static Analysis for Dynamic LanguagesConflict Detection Enabled

Project Details

Lead PI

Performance Period

Apr 01, 2014 - Mar 31, 2019

Institution(s)

University of California-Santa Barbara

Award Number


Dynamic languages such as JavaScript, Python, and Ruby are ubiquitous; they are employed in critical infrastructure on clients, servers, and desktops, from browsers to the operating systems. The security, maintainability, correctness, and performance of programs written in these languages is becoming increasingly important. Static analysis is a valuable tool to help achieve these goals. However, static analysis of dynamic languages is a significant challenge due to their inherent dynamism, complicated semantics, and obscure corner cases, all of which conspire to make most static analyses incorrect, intractable, or both. The objective of this research is to extend the state of the art in terms of correctness, precision, and performance for static analysis of dynamic languages. The intellectual merits of this research involve novel contributions in three areas: (1) ensuring the correctness of a static analysis via analysis testing, enabling high correctness assurance with low cost; (2) exploring the tradeoffs between analysis performance and precision by a novel framework for tunable analysis sensitivity, enabling empirical investigation into the most productive forms of static analysis for dynamic languages; and (3) refinement and parallelization strategies to help optimize analysis performance and precision, combatting the challenges of dynamic languages outlined above. Beyond the technical contributions, the broader impacts of this research are in education, the research community, and in industry. The insights and artifacts resulting from this research will be used to create novel curricula for both undergraduate and graduate courses. All of the research artifacts will be made publicly available under an open license, and the PI will use his connections to industrial research labs to facilitate technology transfer to industry.